Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Ionic应用程序未发出POST请求_Django_Ionic Framework - Fatal编程技术网

Django Ionic应用程序未发出POST请求

Django 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应用程序与Django API服务器后端有一个有趣的问题

在我的应用程序的早期版本(0.0.1-.0.0.5)中,这还没有出现,但从现在开始,我无法发出POST请求以获取我的身份验证令牌

在部署的服务器上使用Ionic Local
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白名单已启用