2013-02-17 174 views
2

我想從另一個域test.example.com訪問example.com。 我已經安裝在服務器example.com與CORS頭像這樣(在nginx.conf)迴應頭:XHR POST請求失敗,CORS

 add_header Access-Control-Allow-Origin $http_origin; 
    add_header Access-Control-Allow-Credentials true; 
    add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"; 
    add_header Access-Control-Allow-Headers "*"; 

如果我發送一個GET請求,可以suceed,但如果我發送POST請求其將失敗,並出現此錯誤:

XMLHttpRequest cannot load http://example.com/path. Origin http://test.example.com is not allowed by Access-Control-Allow-Origin. 

我該如何處理cors的請求?

回答

3

這取決於瀏覽器。有些瀏覽器不喜歡Access-Control中的通配符。嘗試將發佈請求的所有標題放入Access-Control-Allow-Headers(例如來自Access-Control-Request-Headers)。

還請注意,基本的GET請求,你通常不需要任何特定的服務器擴展 - 這可能是一個解釋爲什麼要工作(見https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS)。

如果這不起作用:哪些瀏覽器中使用您能不能給我們更多的細節,什麼要求它使。

+0

感謝。我的服務器的響應代碼不是200,這也造成了一些問題。 – ShiningRay 2013-02-18 12:45:01