什么是跨域?
地址不同,不能相互的去訪問資源。
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) } });