在html5界面使用ajax从服务器获取数据,发生了奇怪的事情,在浏览器和苹果手机中该ajax是正常的。但是在安卓(小米)手机里测试的时候,ajax总是请求总会进入error中。奇了怪了。
这是打印出的返回的error中的参数:
这是ajax所报的错:
在网上找到这样一篇文章:http://www.tuicool.com/articles/7FVnMz
才知道是因为跨域的问题。
Access-Control-Allow-Origin
只有当目标页面的response中,包含了 Access-Control-Allow-Origin
这个header,并且它的值里有我们自己的域名时,浏览器才允许我们拿到它页面的数据进行下一步处理。如:
Access-Control-Allow-Origin: http://run.jsbin.io
如果它的值设为
*
,则表示谁都可以用:
在产品环境中,没人会用 *
但是我需要谁都可以获取到服务器端该接口的数据,那么就需要在服务器相应的接口中添加header:
response().setHeader("Access-Control-Allow-Origin", "*"); //这是在play的框架中,在有些里边可能是addHeader()