CORS 定义
Cross-Origin Resource Sharing(CORS)跨来源资源共享是一份浏览器技术的规范,提供了 Web 服务从不同域传来沙盒脚本的方法,以避开浏览器的同源策略,是 JSONP 模式的现代版。与 JSONP 不同,CORS 除了 GET 要求方法以外也支持其他的 HTTP 要求。用 CORS 可以让网页设计师用一般的 XMLHttpRequest,这种方式的错误处理比 JSONP 要来的好。另一方面,JSONP 可以在不支持 CORS 的老旧浏览器上运作。现代的浏览器都支持 CORS。
php后台响应头部代码
1//json头 2header("Content-type: application/json"); 3 4//跨域 5header("Access-Control-Allow-Credentials: true"); 6header("Access-Control-Allow-Origin: 跨域URL"); 7 8//CORS 9header("Access-Control-Request-Methods:GET, POST, PUT, DELETE, OPTIONS"); 10header('Access-Control-Allow-Headers:x-requested-with,content-type,test-token,test-sessid');
js请求代码
1$.ajax({ 2 type: "POST", 3 url: "", 4 xhrFields: {withCredentials: true}, 5 crossDomain: true, 6 data: "", 7 beforeSend: function (XMLHttpRequest) { XMLHttpRequest.setRequestHeader("test-token", 'abcd'); XMLHttpRequest.setRequestHeader("test-sessid", 'abcd'); 8 }, 9 error: function (XMLHttpRequest) { 10 if (XMLHttpRequest.status === 401) { } 11 }, 12 success: function () {}, 13 complete: function () {} 14});