1.? Ajax不能跨域請求的原因
同源策略(Same Origin Policy),是一種約定,該約定阻止當前腳本獲取或者操作另一個域下的內容。所有支持Javascript的瀏覽器都支持同源策略,也就是說瀏覽器可以隔離來自不同源的內容,阻止跨域請求的發生。
2.?解決方法
(1)?CORS
在被請求的腳本中使用header()函數設置http響應,從而使得跨域請求能夠發生:
header(“Access-Control-Allow-Origin:*”);
這一方法稱為CORS(Cross-Origin Resource Sharing),是w3c的工作草案。
(2) 使用Jsonp (Json with padding)
jsonp的原理是通過script標簽的src屬性來請求不同源的腳本。
步驟:
1)?創建script標簽,設置src屬性
2)?定義回調函數
3)?在被請求的php腳本中執行回調函數
4)?在回調函數中處理返回數據