PHP基础

chrome发起跨域ajax请求报错问题

 在Chrome浏览器中,如果想通过AJAX请求不同域中的资源,很可能就会遇到 “Origin null is not allowed by Access-Control-Allow-Origin” 的错误。

这是因为在新版本浏览器中安全策略引起。简单的说,如果XMLHttpRequest 请求的URL和当前页面不同一个域中时,浏览器会检测响应http header中有没有 Access-Control-Allow-Origin项,如果此项值为空或者与当前页面的域不匹配时,就会报此错误。

W3C标准中有个叫Cross Origin Resource Sharing (CORS)的东东用来解决此问题。

简单的说在目标资源返回的http头中需要包含有“Access-Control-Allow-Origin”项,并且其值格需要能匹配请求源页面域。

如在 http://a.com/default.html 页面中通过 ajax 获取 http://b.com/response.php 页面的内容,那么响应http header中Access-Control-Allow-Origin就必须能匹配  http://a.com,否则就会出现以上错误。

添加此 http header的方法有几种:

1.1 通过网站程序设置

如在php中

header("Access-Control-Allow-Origin", "http://a.com");

Publish Comment发表评论

点击刷新验证码 点击图片可刷新验证码

Comment网友评论

詹绍乾 Jancy © 版权所有 2010

Copyright © 2010 by zhanshaoqian.cn All right reserved.