CORS(跨來源資源共享協議) 與 http 302狀態


昨天遇到的問題

使用ajax請求一個支持CORS的跨域頁面(A),此頁面返回302狀態並且重新定向到頁面(B)。此時ajax停止不前,並且觸發 ajax onerror 事件。

正確的相應應該是:ajax繼續請求B頁面,並且拿到B頁面的返回值,觸發onload事件。

 

解決

為 B 頁面設置同樣的CORS支持。

header("Access-Control-Allow-Origin:*");

 

下面是關於CORS,和 http 302的介紹。

CORS

是一份瀏覽器技術的規范,提供了 Web 服務從不同網域傳來沙盒腳本的方法,以避開瀏覽器的同源策略。
如果您的頁面設置了CORS的返回頭 Access-Control-Allow-Origin:* ,那么可以接收任何域名的 AJAX 請求。
http://zh.wikipedia.org/wiki/%E8%B7%A8%E4%BE%86%E6%BA%90%E8%B3%87%E6%BA%90%E5%85%B1%E4%BA%AB
http://enable-cors.org/

 

http 302

請求的資源現在臨時從不同的URI響應請求。

http 302 總會返回一個(response header) location:http://xxxx.com 。用於把瀏覽器重新定向到 location 所指定的地址。

http://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81

 

最后:CORS 是個好東西

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM