我有现在在iOS,Android甚至wp8上正常运行的cordova / phonegap应用程序。我为blackberry10构建应用程序,并能够在模拟器中运行它。该应用程序首先要做的是尝试进行一些远程XHR调用,但这些调用失败了。以下是我在远程chrome控制台中看到的错误:
403 (Forbidden)
https://bloblbolob.kjsdghs.dsf Origin local:// is not allowed by Access-Control-Allow-Origin.
XMLHttpRequest cannot load https://sdkjf.jksdj.kdj Origin local:// is not allowed by Access-Control-Allow-Origin.
我已编辑了config.xml,并使用以下行手动替换了access属性:
<access subdomains="true" uri="*" />
然而,这没有任何区别。
答案 0 :(得分:4)
BlackBerry 10上的XmlHttpRequest(XHR)不允许使用*通配符。
如果您打算在BlackBerry 10应用程序中使用XHR,则必须将URL列为白名单,作为config.xml中的访问元素。
有关访问外部资源的更多信息: https://developer.blackberry.com/html5/documentation/beta/accessing_external_resources_webworks.html
答案 1 :(得分:2)
有一种可能性可以绕过你的问题。您可以完全禁用应用的WebSecurity:
http://cordova.apache.org/docs/en/3.2.0/guide_platforms_blackberry10_config.md.html
<preference name="WebSecurity" value="disable"/>
这会产生一些负面影响,但会解决您的问题。我遇到了同样的问题,因为我的应用程序的后端托管在我们的客户网络中。这使得无法将服务器列入白名单。
答案 2 :(得分:1)
在config.xml中添加
<access subdomains="true" uri="http://domain.in" />
因为这是黑莓的单独标签
请注意:请勿在URI部分添加*,因为Blackberry不允许使用“*”通配符。