AJax技术

CORS解决ajax跨域问题(2)

字号+ 作者:H5之家 来源:H5之家 2016-07-02 13:00 我要评论( )

标准的CORS要求不对cookies做任何事情,既不发送也不改变。如果希望改变这1情况,就需要将withCredentials设置为true。 另外,服务端在处理这1要求时,也需要将Access-Control-Allow-Credentials设置为true。 withC

标准的CORS要求不对cookies做任何事情,既不发送也不改变。如果希望改变这1情况,就需要将withCredentials设置为true。
另外,服务端在处理这1要求时,也需要将Access-Control-Allow-Credentials设置为true。
withCredentials属性使得要求包括了远程域的所有cookies,但值得注意的是,这些cookies仍旧遵照“同域”的准则,因此从代码上你其实不能从document.cookies或回应HTTP头当中进行读取。

简而言之,withCredentials:true 那末 Access-Control-Allow-Credentials:true,反之不成立。

$.ajax({ url:'http://localhost:8888/other/index.jsp', type:'get', dataType:'text', success:function(data){ console.log(data); }, xhrFields: { withCredentials: true } });

<% response.setHeader("Access-Control-Allow-Origin","http://localhost:8080"); response.setHeader("Access-Control-Allow-Methods","GET,POST,PUT,OPTIONS"); response.setHeader("Access-Control-Allow-Credentials","true"); %>

CROS差不多讲完了,1般解决实际问题的时候,都是设置上面3个属性。固然还有Access-Control-Request-Headers等等可以设置,这就需要你10分了解HTTP协议啦。

以后可能另外再开1个跨域异步文件上传和Tomcat跨域问题的解决方案,触及到crossdomain.xml,有兴趣的可以先去了解了解。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评
/