【发布时间】:2015-01-23 00:21:06
【问题描述】:
我正在使用 Visual Studio 2013 Update 4,并且我有一个 Web api 项目设置来接收返回数组的获取请求。对于客户端应用程序,我已经设置了cordova,并正在使用 ng-resource 模拟一个 android 角度应用程序来调用 web api get。每次我调用 GET 时都会收到一个表示连接被拒绝的ripple.js 错误。即使我也尝试使用真正的 android 设备,我也会被拒绝连接。这是使用波纹模拟器时的错误
选项http://****:4400/ripple/xhr_proxy?tinyhippos_apikey=ABC&tinyhippos_rur…Fget%3D%257B%2522method%2522%3A%2522GET%2522%2C%2522array%2522%3Atrue%257D net::ERR_CONNECTION_REFUSED
我确定在 web api 2 服务器上启用了 cors,因为 cordova 和 web api 项目是同一本地主机上的不同端口号。我不仅证明了 cors 的功能,还证明了代码,方法是创建一个带有 angular 网页的 cordova angular 应用程序的精确副本。我也尝试过使用邮递员,并且都正确地得到了 json 响应。只有cordova android应用程序给我连接被拒绝。任何帮助将不胜感激!
这是 angular get 的样子
app.factory('mrMaintService', function ($resource) {
return $resource('http://localhost:15528/api/requests', {
get: { method: 'GET', array: true }
});
});
这表明我允许 web api 项目中的所有域:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
【问题讨论】:
-
您是否已将您的 cordova config.xml 中的 api 域列入白名单。见cordova.apache.org/docs/en/edge/…
-
那里有一个星号,所以我假设所有这些都被列入白名单。我也只是明确地添加了 web api localhost 但没有运气。还有其他建议吗?
标签: javascript android asp.net angularjs cordova