2011-11-22 4 views
6

Firefox에서 http 포스트 콜에 문제가 있습니다. 나는 교차 원점이있을 때 파이어 폭스가 먼저 POST 전에 OPTIONS를 사용하여 액세스 제어 허용 헤더를 알 수 있음을 알고 있습니다.자바 스크립트에서 교차 출처가있는 http 게시물 요청

Net.requestSpeech.prototype.post = function(url, data) { 
    if(this.xhr != null) { 
     this.xhr.open("POST", url); 
     this.xhr.onreadystatechange = Net.requestSpeech.eventFunction; 
     this.xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8"); 
     this.xhr.send(data); 
    } 
} 

내가이 함수를 호출하는 간단한 HTML이 코드를 테스트 :이 코드 내가 어떤 문제를 가지고 있겠지. 모든 것이 정상이며 OPTIONS 및 POST의 응답이 있으며 응답을 처리합니다. 하지만, 나는이 문제 (이 경우) (데이터)이 사건에서 실행, 브라우저 (파이어 폭스)가 같은 일을 처음으로 할 때 jquery를 사용 하여이 코드를 통합하려고 노력하고있어. a 옵션 요청하지만,이 경우 서버의 응답을 받게 해달라고 콘솔에서이 메시지를 넣습니다 :

[18:48:13.529] OPTIONS http://localhost:8111/ [undefined 31ms] 

정의되지 않은 ... 응답을 받게 해달라고하지만, 코드가 동일하기 때문에 정의되지 않은는 내가 이 경우 옵션이 응답을받지 못하는 이유를 알 수 있습니까? 누군가가 아이디어를 가지고 있습니까?

내 서버 응용 프로그램을 디버그하고 OPTIONS가 서버에 도착했지만 브라우저가 응답을 기다리지 않는 것 같습니다.

편집 나중에 확인 : 문제는 내가 요청을 실행하는 메소드를 호출하는 SCRIPT 태그를 사용하여 간단한 html로 실행하는 것입니다.하지만이 응용 프로그램에서는 응답을받지 못합니다. 양식 onsubmit 이벤트를 할, 나는 제출 이벤트가 매우 빠르게 반환하고 브라우저가 OPTIONS 요청을 얻을 시간이 없다고 생각합니다. 더 나중에 나중에

편집 :

this.xhr.open("POST", url, false); 

매우 빠르게 reponse를 입력하고, 브라우저의 옵션 응답에 어떤 생각을 기다릴 수 없어 : WTF, 내가 문제를 해결할 수는 POST 요청을 동기화 할 수 있도록 이?

답변

2

발신지 주소가 동일하므로 iframe에 사이트를 포함 시키면 해결할 수 있습니다 (도메인에 액세스 할 수있는 경우) 원본 사이트에는 외부 사이트에 iframe, 내부 방향 합법적입니다.

관련 문제