데이터를 다른 도메인에 POST하고 작업에 의해 반환 된 확인 메시지를 수신하고 싶습니다.JQuery ajax OPTIONS 권한 요청이 작동하지 않습니다.
def options
headers['Access-Control-Allow-Origin'] = "*"
headers['Access-Control-Allow-Methods'] = 'GET, POST, PUT, OPTIONS'
headers['Access-Control-Max-Age'] = '100'
headers['Access-Control-Allow-Headers'] = '*, x-requested-with, content-type, accept, origin, referer, user-agent'
render :text => '', :content_type => 'text/plain'
end
내 JQuery와 아약스 요청 : 그래서 현재 다음과 같습니다 내 레일 컨트롤러에합니다 (POST와 같은 경로에) 옵션 HTTP 방식을 처리 할 수있는 옵션 작용을 가지고 일을 CORS를 얻을 수 다음과 같이 보입니다. (coffeescript)
$.ajax
type: 'POST'
url: 'http://my-other-domain.com/'
data: data
contentType: "application/json; charset=UTF-8"
crossDomain: true
success: (response) =>
if response.data_saved
...
error:() => ...
...하지만 작동하지 않습니다.
옵션 요청 Access-Control-Allow-Origin:*
를 반환 작동하는 것 같군 모두, 서버는 수신하고 게시 된 데이터를 처리하지만, 크롬은 여전히 콘솔에
XMLHttpRequest cannot load http://my-other-domain.com/. Origin http://my-main-domain.com is not allowed by Access-Control-Allow-Origin.
을 던져 오류 콜백을 발생합니다.
무엇이 누락 되었습니까?
당신은 생명의 은인입니다! 내가 읽은 기사 중이 점을 분명하게 보이지는 않았다. – Nat
다음은 각 CORS 헤더를 설정해야하는 순서도입니다. http://www.html5rocks.com/static/images/cors_server_flowchart.png – monsur