ajax--跨域問題及三種簡單的解決方案


什么是跨域?

地址不同,不能相互的去訪問資源。

 http:// www.bailiban.com : 8888 /img/01.jpg?name=jack
 協議  子域名    主域名      端口號 請求的資源路徑
 協議,子域名,主域名,端口號,只要有一個不同就是跨域,資源就不能通過ajax進行訪問

 

解決跨域的三種簡單方法:

1.代理服務器

用一個新的服務器把需要使用的代碼都放在一起就可以正常訪問。

2.設置請求頭

在PHP頁面中添加如下代碼:

header("Access-Control-Allow-Origin: *"); //域名
header(
"Access-Control-Allow-Method: POST,GET"); //傳遞方式

3.jsonp

3.1什么是jsonp:

jsonp是一種數據傳輸的方式或者說非強制性的協議

3.2jsonp和ajax的實質:

ajax的核心是通過xmlHttpRequest獲取非本頁內容

jsonp的核心是動態添加script標簽調用服務器提供的js腳本

3.3jsonp使用注意:

只能傳遞 通過GET 方式傳遞的數據

3.4jsonp使用代碼:

js版:

function addScript(src){
    var script = document.createElement("script");
    script.src = src;
    document.body.appendChild(script);
}

jQuery版:

$.ajax({
     type: "GET",
     url: "http://192.168.9.154:3000/jsonp",
     dataType: "jsonp",
     success: function(data){
     console.log(data)
     }
});

 


免責聲明!

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



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