2012-06-29 2 views
5

Firefox에서 SuperAgent (http://visionmedia.github.com/superagent/)에 대한 내 문제의 출처를 발견했습니다. SuperAgent가 AJAX 호출에서 SuperAgent를 수행하고 있는지 또는 FireFox가 호출하고 있는지 확실하지 않습니다.SuperAgent AJAX가 OPTIONS를 호출하지 못하도록하려면 어떻게합니까?

본질적으로 AJAX 호출을 할 때마다 OPTIONS 메소드가 실제 AJAX 호출 전에 URL에서 실행됩니다. 서버가 현재 OPTIONS를 지원하지 않기 때문에 매우 귀찮습니다. 서버를 허비하고 다시 코딩하지 않고 전화를 걸려면 어떻게해야합니까?

감사합니다.

답변

5

알아 두세요. Safari에서 고맙게도 테스트를 해보니 실제로 어떤 일이 일어나고 있는지에 대해 더 많은 정보를 얻었으며 여기에 내 지식을 적용했습니다.

실제 AJAX 호출을하기 전에 브라우저에서 OPTIONS 메서드를 호출하는 것이 표준 인 것처럼 보입니다. 약간 위압적 인 것 같습니다.

주위를 둘러보기 위해 각 역순 프록시 서버에 catch-all을 추가하여 각 OPTIONS 호출을 처리했습니다.

Play! 2.0 easy fix to OPTIONS response for router catch-all?

을 그리고 당신은 더 많은 브라우저가이 일을하는 이유 최대 읽으려면 여기를 참조 : 당신은 코드를 아래의 질문을 볼 수 있습니다

Why am I getting an OPTIONS request instead of a GET request?

OPTIONS는에서이다 CORS 표준.

0

또한 phantomjs에서 web-secuty를 비활성화하면이 문제를 해결하는 데 도움이됩니다 (--web-security=no). 왜냐하면 OPTION 메소드를 변경하기 위해 API 서버에 액세스 할 수 없었기 때문입니다.