我目前正在Ionic框架中编写一个需要与API通信的功能。我尝试使用XMLHttpRequest()
函数,就像我在网上调用的大多数资源一样,但请求每次都失败,尽管事实上我有互联网访问权限,cannot load
错误。
如果它有任何区别,我正在使用ionic serve --lab
和本地计算机(连接到互联网)测试应用程序。我想我在某种程度上还想知道与之通信的正确方法通过Ionic的RESTful API也是如此。非常感谢任何帮助。
答案 0 :(得分:1)
问题是CORS。当您在应用程序中时,您的移动电话会为您处理跨域连接,但在您的浏览器中它是不行的。
您需要做的是使用ionic.project设置代理
{
"name": "appName",
"app_id": "",
"proxies": [
{
"path": "/devapi",
"proxyUrl": "https://api.somewebsite.com/api/"
}
]
}
在此之后,您所做的每个ajax请求都应该简单地发送到“/ devapi” 这就是我在应用程序initlization
中每隔5秒不切换的做法if (window.cordova) {
$rootScope.baseURL = 'https://api.somewebsite.com/api/';
} else {
$rootScope.baseURL = 'devapi/';
}
进一步阅读代理人:http://ionicinaction.com/blog/how-to-fix-cors-issues-revisited/