一直以为AJAX跨域是无法逾越的鸿沟,最近发现原来在服务端可以通过发送header信息来允许AJAX跨域请求。
header('Access-Control-Allow-Origin:*'); header('Access-Control-Allow-Headers:X-Requested-With');
经过测试,webkit内核的浏览器成功实现跨域请求。
另外,需要注意的是,第一行配置中的*表示允许来自所有referer的跨域请求,如果不想完全开放,可以配置为特定域名。这样就能保证只有来自特定域名的跨域请求可以成功。例如:
header('Access-Control-Allow-Origin:http://www.test.com');第二行配置的含义是允许异步AJAX请求,因为异步AJAX会自动发送这个header信息,服务端一般通过接受header信息来确定是AJAX请求。一般我们发送的AJAX请求都是异步的。