做前端的,用Ajax获取数据,是常有的事情,同域下自然没问题了,如果是不同域获取数据,浏览器就有个同源策略的限制。
如图:
Origin * is not allowed by Access-Control-Allow-Origin
有人会说用JSONP了。如果后台的数据接口只是返回单纯的json数据呢,而且也不能修改符合JSONP的方式的数据形式。 这个时候,我们该怎么办呢? 如果你用的浏览器是Chrome的话,那么就有福音了。在打开Chrome的地址后边加上 --args --disable-web-security
就可以屏蔽安全访问了[ --args:此参数可有可无],然后就随意的调用不同域下的数据了。
具体操作步骤如下:
一:windows系统(Win7)下的Chrome
1、关闭所有打开的Chrome。(重要)。否则,将没有效果!
2、创建Chrome的快捷方式,修改快捷方式的目标为:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --args --disable-web-security
如图:
3、双击我们创建的Chrome快捷方式,打开Chrome,如图出现“您使用的是不受支持的命令行标记:--disable-web-security。稳定性和安全性会有所下降”,表示你取消了跨域限制了,可以随意跨域调用数据了。
如图:
Mac os 下面用
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-security
或者
open -a "Google Chrome" --args --disable-web-security
Ubuntu?Linux:
chromium-browser --disable-web-security
用命令行打开 Apple Safafi 方法是:(Mac OS 下)
open -a ‘/Applications/Safari.app‘ --args --disable-web-security