2012-01-27 5 views
0

다른 도메인에 ajax POST 요청 (json)을 작성해야합니다 (나중에 모든 것이 동일한 도메인에 있지만 localhost에서 테스트하고 있습니다). 아직 서버에 액세스 할 수 없습니다.)JQuery가 다른 도메인으로 호출 할 때 OPTIONS 대신 POST 요청을 보내도록하십시오.

참고 : 현재 서버 코드를 수정할 수 없습니다.

가 JSONP : 자체가 내가 POST 요청을 보내는 경우 작동하지만 JQuery와겠습니까이다 파이어 폭스에 대한

CORS 플러그인 (다른 도메인을 허용 강제로)

를 작동하지 않습니다

나는이 문제에 대한 몇 가지 해결책을 발견 첫 번째 OPTIONS 요청을 만듭니다 (아마도 다른 도메인을 감지하기 때문일 수 있습니다). 그리고 여기에는 서버에 인증이 필요하기 때문에 문제가 있습니다 (OPTIONS를 포함한 모든 것에 대해).

POST 요청의 헤더에 인증을 보내지 만 JQuery가 OPTIONS 요청의 헤더에이를 포함하지 않고 "백그라운드에서 수행"중이기 때문에 추가 할 수 없습니다. 옵션 요청에

  1. 추가 인증 헤더 :

    사실이 개 솔루션이있을 수 있습니다. 그러나 언급 한대로이 요청을 직접 보내지 않으므로 어디에서/어떻게해야할지 모르겠습니다.

  2. 강제로 JQuery가 OPTIONS 요청을하지 않고 직접 POST를 보냅니다 (이 스레드의 제목). 나는 잠시 수색했지만 아무 것도 찾지 못했습니다. 그게 가능하니?

저는 요청을하기 위해 JQuery 1.7.1 및 $ .ajax ({...})를 사용하고 있습니다.

미리 감사드립니다.

+0

가능한 중복 : http://stackoverflow.com/questions/1256593/jquery-why-am-i-getting-an-options-request-insted-of-a-get-request – zrvan

+0

중복되지 않습니다. 그들은 GET을 사용하고, 나는 POST를 사용하고있다. (jsonp는 GET으로 작동하고 POST와는 작동하지 않는 것처럼 보인다.) 그리고 질문도 다르다. OPTIONS를 얻는 이유를 묻지 않고 JQuery 동작 (또는 대체 솔루션)을 수정하는 방법을 묻는다. – Ixx

답변

1

이것은 까다로운 내용입니다. 다음과 같이하는 것이 좋습니다.

ajax 연결을 동일한 도메인의 파일로 만듭니다. 다른 곳에있는 파일에 대해 cURL 연결을 수행하십시오.

정보를 보내고 인증 헤더를 추가하십시오.

당신은 마지막 부분 여기를 볼 수 있습니다 http://php.bigresource.com/CURL-and-HTTP-Authentication--p8WkKqkq.html

간단하게 인터넷 검색을 "포스트 헤더가 곱슬 곱슬"그 부분에 당신을 도울 것이다.

+0

그 덕분에 많은 일을했습니다! – Ixx

관련 문제