在构建和运行 ionic 应用程序时,我遇到了非常奇怪的问题。我正在从服务器调用登录 API,它在浏览器中运行良好,运行时
$ionic serve --lab
但是当应用程序安装在 Android 中时,它会给出 403 错误,并且没有提供有关错误代码的任何其他信息,可能我不知道如何在 android 混合应用程序中获取浏览器控制台日志。
我有如下登录功能
login: function(user) {
var deferred = $q.defer();
$http.post(SERVER_URL + '/auth/login', {
username: user.username,
password: user.password
}).success(function(response, status, headers, config) {
if (response.data && response.data[0]) {
Auth.setToken(response.data[0].token);
Auth.setUserId(response.data[0].id);
deferred.resolve(response);
} else {
deferred.reject(response);
}
}).error(function(response, status, headers, config) {
deferred.reject(response);
});
return deferred.promise;
}
但是,所有 get 请求都可以正常工作。
最佳答案
我最近遇到了这个问题,在没有收到 403 的情况下,我无法从 iPhone 上运行的应用程序或模拟器发布任何内容,但它确实可以直接从任何浏览器(包括我手机上的浏览器)使用 Postman-chrome 插件直接运行。
这似乎是来自 Ionic 应用程序的任何 POST 请求的问题:它正在发送 Origin
标题为 file://
.使用 Play Framework 2.4 后端,我不得不禁用 CORSFilter
完全 (从 application.conf 中删除 play.http.filters
)使其工作。我将进一步调查,也许稍后会提供更多细节。
X-Requested-With
& Content-Type
标题设置,<allow-navigation href="*"\>
,并没有任何效果。 关于angularjs - $http.post 在 ionic android 应用程序中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27619586/