Django Ionic应用程序未发出POST请求
我的Ionic应用程序与Django API服务器后端有一个有趣的问题 在我的应用程序的早期版本(0.0.1-.0.0.5)中,这还没有出现,但从现在开始,我无法发出POST请求以获取我的身份验证令牌 在部署的服务器上使用Ionic LocalDjango Ionic应用程序未发出POST请求,django,ionic-framework,Django,Ionic Framework,我的Ionic应用程序与Django API服务器后端有一个有趣的问题 在我的应用程序的早期版本(0.0.1-.0.0.5)中,这还没有出现,但从现在开始,我无法发出POST请求以获取我的身份验证令牌 在部署的服务器上使用Ionic LocalIonic serve,当我尝试登录时,我的服务器会注册一个OPTIONS/token auth/,然后注册POST/token auth/。根据服务器日志,当我在我的设备上运行应用程序时,运行安卓系统并尝试登录服务器时,服务器只注册选项请求,而不注册帖子
Ionic serve
,当我尝试登录时,我的服务器会注册一个OPTIONS/token auth/
,然后注册POST/token auth/
。根据服务器日志,当我在我的设备上运行应用程序时,运行安卓系统并尝试登录服务器时,服务器只注册选项请求,而不注册帖子
我发现这是由于CORS,它首先发布一个选项来查看允许发布什么。出于某种原因,选项请求返回时完全没有任何内容。在我的其他Django Rest框架项目中,这些选项会返回一个正确的响应。我认为这是相关的,但奇怪的是,从localhost到部署的服务器,OPTIONS请求响应相同
我的登录功能非常基本:
$http({
method: 'POST',
url: config.apiUrl + 'token-auth/',
data: {
"username": usernameElement[0].value,
"password": passwordElement[0].value
}
}).then(function(data) {
console.log('success', data);
...
}, function(err) {
console.log('error', err);
...
});
我发现另一件有趣的事情是,它运行error函数,但不是在err
变量中返回一个普通的error对象,而是返回看起来是request对象的对象。我以前从未见过这种情况
{
"data":null,
"status":0,
"config":{
"method":"POST","transformRequest":[null],
"transformResponse":[null],
"url":"http://example.com/api/token-auth/",
"data":{
"username":"myuser",
"password":"mypassword"
},
"headers":{
"Accept":"application/json, text/plain, */*",
"Content-Type":"application/json;charset=utf-8"}
},
"statusText":""
}
- 在部署的服务器上运行良好的本地应用程序
- 部署服务器的设备应用程序不注册POST请求,仅注册选项
- AJAX错误返回是请求对象,而不是错误响应对象
我已经在这上面呆了几天了,我正在寻找任何想法。这实际上是CORS的问题。通过调试后,我发现它没有通过CORS。后来我发现,爱奥尼亚没有在上提供服务,而是出于某种原因改为在上提供服务。10:8100您是否将URL添加到了白名单中@cDima嘿耶cordova白名单已启用