我正在创建我的第一个离子型应用程序,但是我正在与cors做斗争,我在这方面没有太多的经验,所以这个问题可能看起来很愚蠢。
我没有访问api站点的权限,所以我不能在那里更改任何内容。这是我用来从api站点获取数据的代码。我读到cors在使用离子服务进行测试时只是一个问题,但是我尝试过构建android应用程序并将apk传输到我的手机上,但是它似乎也不起作用(而且我无法在我的手机上看到控制台日志来测试它:)
app.controller('VolleyCtrl', function($http, $scope) {
$scope.wedstrijden = [];
$http.get('http://www.volleyadmin2.be/services/wedstrijden_xml.php?province_id=5&stamnummer=O-0696&format=json')
.success(function(response) {
angular.forEach(response, function(child) {
$scope.wedstrijden.push(child);
})
});
});
发布于 2015-12-25 03:49:21
如果您正在使用一个更新版本的Cordova (或最新的Ionic CLI)来开发您的应用程序,当您的应用程序试图发出网络请求时,您可能会遇到http 404错误。
这可以用科多瓦白名单插件快速解决。
您可以找到关于离子博士:科多瓦白名单的更多文档。
解决方案:
在shell/终端中运行以下命令:
ionic plugin add https://github.com/apache/cordova-plugin-whitelist.git
现在唯一需要做的事情是向config.xml
文件添加一个属性:
<allow-navigation href="*" />
发布于 2018-12-30 23:50:15
在没有运气的情况下尝试了很多解决方案后,
cordova plugin rm cordova-plugin-ionic-webview
cordova plugin add cordova-plugin-ionic-webview@latest
解决了我的案子。
发布于 2016-05-05 00:48:43
可能有很多原因。
处理CORS意味着配置后端和前端。在后端,取决于您的api运行的web服务器。
我认为您不会使用"...you可以通过-禁用-web-安全标志打开来禁用它检查cors .“来解决这个问题。
在控制器中只处理http承诺并在服务上移动http请求是一种良好的做法。我可以告诉你我做了什么来避免飞机前的麻烦。
默认情况下,$http.defaults.headers.{HTTP_VERB}中的角集标头。
我的例子是$http.defaults.headers.post,它的内容类型是:'application/json‘。这种内容类型触发了铬中的cors。如果手动设置“内容-类型”并不重要。默认情况下,这是以角度设置的。
因此,修复是转到您的app.js文件,并在.config部分中插入您的代码,这将是
app.config(['$http', function ($http) { //Reset headers to avoid OPTIONS request (aka preflight) $httpProvider.defaults.headers.post = {}; }]);
https://stackoverflow.com/questions/34461950
复制