ajax全称Asynchronous JavaScript And XML;
XML在简称中残留是历史原因,响应数据一般json,文本,html;
来源域的ajax向目标域(跨域)发起请求,会自动带上Origin头,如
Origin:http://fron.com
目标域判断这个Origin的值,如果正确,返回:
Access-Control-Allow-Origin:http://from.com
表示同意跨域。
如果Access-Control-Allow-Origin:*,表示任意域都可以往目标域跨,
如果没有Access-Control-Allow-Origin头部的存在,
回报下面的错误:
XMLHttpRequest cannot load.....
默认情况下,跨域无法带上目标域的回话(cookie),需要设置xhr实力的withCredentials的属性为true,
服务端设置如下:
<?PHP header("Access-Control-Allow-Origin:http://xxx.com"); header("Access-Control-Allow-Credentials:true"); ?>
如果设置了Credentials为true,不能设置通配符*(浏览器为了安全考虑);