CORS 定義
Cross-Origin Resource Sharing(CORS)跨來源資源共享是一份瀏覽器技術的規范,提供了 Web 服務從不同域傳來沙盒腳本的方法,以避開瀏覽器的同源策略,是 JSONP 模式的現代版。與 JSONP 不同,CORS 除了 GET 要求方法以外也支持其他的 HTTP 要求。用 CORS 可以讓網頁設計師用一般的 XMLHttpRequest,這種方式的錯誤處理比 JSONP 要來的好。另一方面,JSONP 可以在不支持 CORS 的老舊瀏覽器上運作。現代的瀏覽器都支持 CORS。
php后台響應頭部代碼
//json頭
header("Content-type: application/json");
//跨域
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Origin: 跨域URL");
//CORS
header("Access-Control-Request-Methods:GET, POST, PUT, DELETE, OPTIONS");
header('Access-Control-Allow-Headers:x-requested-with,content-type,test-token,test-sessid');
js請求代碼
$.ajax({
type: "POST",
url: "",
xhrFields: {withCredentials: true},
crossDomain: true,
data: "",
beforeSend: function (XMLHttpRequest) { XMLHttpRequest.setRequestHeader("test-token", 'abcd'); XMLHttpRequest.setRequestHeader("test-sessid", 'abcd');
},
error: function (XMLHttpRequest) {
if (XMLHttpRequest.status === 401) { }
},
success: function () {},
complete: function () {}
});
