Apache Cordova(Phonegap):跨站点脚本需要jsonp吗?

DEX*_*DEX 2 javascript ajax cross-domain cordova

我刚刚开始使用Apache Cordova.我有一个库(通过ajax)调用soap服务器.

当我在我的本地计算机上以chrome运行这些时,我在尝试调用服务时遇到跨站点脚本错误.

当我在iOS模拟器中使用Cordova浏览器运行相同的确切代码时,脚本似乎可以正常运行服务器并正确接收响应数据.

所以我的问题是Cordova浏览器如何能够在没有跨站点脚本权限和JSONP的情况下发出这些请求?我注意到的一件事是,当从iOS发送请求时,没有"Origin"标头.这是否允许Cordova浏览器隐秘地规避跨站点脚本要求?是否有可能设备上的node.js服务器(我相信这是Cordova如何工作)正在操纵标头以允许这个?

我想避免在我的网站上启用跨站点脚本,所以我认为这个"功能"很好,但我想知道它是否也是一个安全漏洞.

有人有这方面的经验吗?

Dav*_*den 10

默认情况下,Phonegap允许跨域请求.如果您担心安全性,可以使用域白名单来限制此操作.如果您使用的是jQuery,请设置$.support.cors = true;为允许跨域请求.

此页面包含Phonegap中跨站点脚本安全性的细分.

顺便说一句,您可以使用谷歌Chrome浏览器提供一个巧妙的技巧,以允许跨站点脚本,从而在Ripple模拟器中测试您的Phonegap应用程序,例如:--disable-web-security在Chrome的快捷方式中设置命令行参数,例如

"C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-web-security
Run Code Online (Sandbox Code Playgroud)