跨域請求問題+headers 設置+php處理方式【轉】


解決跨域調用服務並設置headers 主要的解決方法需要通過服務器端設置響應頭、正確響應options請求,正確設置 JavaScript端需要設置的headers信息 方能實現。

1.什么是跨域?

跨域:指的是瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對javascript施加的安全限制。

例如:a頁面想獲取b頁面資源,如果a、b頁面的協議、域名、端口、子域名不同,所進行的訪問行動都是跨域的,而瀏覽器為了安全問題一般都限制了跨域訪問,也就是不允許跨域請求資源。注意:跨域限制訪問,其實是瀏覽器的限制。理解這一點很重要!!!

同源策略:是指協議,域名,端口都要相同,其中有一個不同都會產生跨域;

解決辦法

方法一 服務端設置響應頭

header('Access-Control-Allow-Origin:*'); //支持全域名訪問,不安全,部署后需要固定限制為客戶端網址

header('Access-Control-Allow-Methods:POST,GET,OPTIONS,DELETE'); //支持的http 動作

header('Access-Control-Allow-Headers:x-requested-with,content-type'); //響應頭 請按照自己需求添加。

方法二:一頓百度,可以用jsonp解決,具體方法步驟如下

(function($){
$.ajax({
        type: "post",
        url: "http://localhost:8022/test.json",
        data: $.toJSON(userData),
        dataType: 'jsonp',
        jsonpCallback:'callback',
        success: function(result) {
            alert(result);
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            alert(XMLHttpRequest.status);
            alert(XMLHttpRequest.readyState);
            alert(textStatus);
        }
    });
})(jQuery)

原文鏈接:https://www.jianshu.com/p/0f25e13eef0e


免責聲明!

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



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