本地项目开发,无法请求服务器数据
解决chrome对跨域请求禁止的约束:
--args --disable-web-security --user-data-dir
这一串参数关闭了chrome浏览器的同源策略,可以实现在该浏览器下的跨域请求数据。
在哪里设置这几个参数呢?
最简单的,右键chrome选择属性,在目标后面输入参数(每个参数前面都有一个空格)。需要注意的是当前设置的图标开启的chrome在设置完重启后才会有效。
会出现这样的警告,说明禁止成功了。
或者可以通过命令行启动chrome
open -a "Google Chrome" --args --disable-web-security --user-data-dir
都是一个道理。
分析
很多情况都会造成开发人员开发项目与服务器不在同一个环境的情况,这时本地的项目代码请求不到服务器的数据,准确地说是请求到数据,但是并没有走success的回调函数,而是在error里。
很明显这是跨域了,由于http同源策略不允许跨域请求数据,正常情况下不能有这种情况的发生,但是真的有这种需求该怎么办呢。
最经典的恐怕就是jsonp方法了,ajax以jsonp方式请求数据,服务端返回的数据带一个callback函数,具体实现跨域请求的原理很巧妙,但是今天并不是讲这种方法的。这种情况需要后端人员配合前端开发者实现,适用于公司项目与服务器由于种种原因分开的情况。但是今天要解决的是开发者自己要在公司外调试代码的情况,临时救急快速进入可开发状态,上面的方法可以帮助前端开发人员通过chrome调试程序时临时实现跨域请求数据。