Javascript Cordova Angular访问Web Api连接被拒绝

Javascript Cordova Angular访问Web Api连接被拒绝,javascript,android,asp.net,angularjs,cordova,Javascript,Android,Asp.net,Angularjs,Cordova,我正在使用Visual Studio 2013 Update 4,我有一个web api项目设置来接收返回数组的get请求。对于客户端应用程序,我已经设置了cordova,我正在模拟一个android angular应用程序,使用ng资源调用web api get。每次调用GET时,我都会收到一个ripple.js错误,表示连接被拒绝。即使我尝试使用真正的android设备,我也会被拒绝连接。下面是使用ripple emulator时的错误 选项http://**:4400/ripple/xhr

我正在使用Visual Studio 2013 Update 4,我有一个web api项目设置来接收返回数组的get请求。对于客户端应用程序,我已经设置了cordova,我正在模拟一个android angular应用程序,使用ng资源调用web api get。每次调用GET时,我都会收到一个ripple.js错误,表示连接被拒绝。即使我尝试使用真正的android设备,我也会被拒绝连接。下面是使用ripple emulator时的错误

选项
http://**:4400/ripple/xhr\u代理?tinyhippos\u apikey=ABC&tinyhippos\u rur…Fget%3D%257B%2522方法%2522%3A%2522集合%2522%2C%2522阵列%2522%3True%257D网络::错误连接被拒绝

我确信在WebAPI2服务器上启用cors,因为cordova和WebAPI项目在同一个本地主机上具有不同的端口号。我不仅证明了cors的功能,而且还通过创建cordova angular应用程序的精确副本来验证代码,只需使用angular网页即可。我还尝试了postman,两者都得到了正确的json响应。只有cordova android应用程序给了我拒绝连接的机会。任何帮助都将不胜感激

这是有角度的物体看起来的样子

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>


解决方案是在emulator的右下拉菜单中禁用跨域代理。如果您不熟悉ripple仿真器,很容易犯错误

答案与访问
http://localhost
(与
127.0.0.1
相同)可以在这里找到:-上面写着:

还请注意,开发计算机上的地址
127.0.0.1
对应于仿真器自己的环回接口。如果要访问在开发计算机的环回接口上运行的服务(也称为计算机上的127.0.0.1),则应使用特殊地址10.0.2.2


因此,不要使用
http://localhost
使用
http://10.0.2.2
然后附加您正在使用的任何端口。示例:
http://localhost:8001
可在
http://10.0.2.2:8001

您是否已在cordova config.xml中将api域列为白名单。看,那里有一个星号,所以我想所有的都是白名单。我还显式地添加了WebAPI localhost,但运气不好。还有其他建议吗?你还有其他建议吗?我已经在webapi项目和cordova配置中添加了所有域,禁用了ripple代理,仍然没有成功。(它在azure中工作,只是本地主机有问题)您在ripple中尝试过这三种设置吗?我相信是远程、本地和残疾人。也可能你有cors问题?@Larsi已经好几个月了,但我希望你已经找到了解决问题的方法。如果没有,请参阅下面我关于使用Android特殊地址10.0.2的回答。2@ErinGeyer-谢谢你的评论。是的,我发现了一个sln,但不确定它是什么-我应该更新我的评论,对此表示抱歉。