Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.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
Javascript 在Django和react应用程序中使用Axios和CORS获取POST请求的错误请求_Javascript_Reactjs_Axios_Django Cors Headers - Fatal编程技术网

Javascript 在Django和react应用程序中使用Axios和CORS获取POST请求的错误请求

Javascript 在Django和react应用程序中使用Axios和CORS获取POST请求的错误请求,javascript,reactjs,axios,django-cors-headers,Javascript,Reactjs,Axios,Django Cors Headers,我向这个url发出了一个post请求http://localhost:8000/api/auth/users/ 邮递员。这是成功的。但是,在我的react前端尝试相同的操作会产生400(错误请求错误)。它还表示未捕获(承诺中)错误:请求失败,状态代码为400 下面是我的代码AuthAPi.js: import API from "./API"; const config = { headers :{ "Content-Type": &quo

我向这个url发出了一个post请求http://localhost:8000/api/auth/users/ 邮递员。这是成功的。但是,在我的react前端尝试相同的操作会产生400(错误请求错误)。它还表示未捕获(承诺中)错误:请求失败,状态代码为400

下面是我的代码AuthAPi.js:

import API from "./API"; 

const config = {
  headers :{
    "Content-Type": "application/json",
   }
}

const signIn = (email, password) => API.post("/auth/users/", {
  params : {
    email : email,
    password : password 
    
  },
},
  config
)
.Catch((error) => console.log( error.message ) );

export { signIn };
和API.js

import axios from 'axios';

export default axios.create({
  baseURL: `http://127.0.0.1:8000/api`,
  headers: {
    "Content-type": "application/json"
  }
});
我尝试了几个没有解决方案的链接。我很高兴在这里得到帮助

下面是控制台日志、网络日志和Django服务器日志的屏幕截图:

使用此代码:

API.post("/auth/users/", {
  params : {
    email : email,
    password : password 
  }
}
您正在将包含对象的对象作为post数据传递给axios。Axios不介意,但你的服务器不喜欢。相反,请尝试:

API.post("/auth/users/", {
  email : email,
  password : password 
}, config)
这应该行得通。如果要作为单个对象传入,则需要在api调用之外声明它:

let postData = {
  email: email,
  password: password
}
API.post("/auth/users/", postData, config)
使用此代码:

API.post("/auth/users/", {
  params : {
    email : email,
    password : password 
  }
}
您正在将包含对象的对象作为post数据传递给axios。Axios不介意,但你的服务器不喜欢。相反,请尝试:

API.post("/auth/users/", {
  email : email,
  password : password 
}, config)
这应该行得通。如果要作为单个对象传入,则需要在api调用之外声明它:

let postData = {
  email: email,
  password: password
}
API.post("/auth/users/", postData, config)

params
是与请求一起发送的URL参数

您使用的
post
实例方法的签名是
axios#post(url[,data[,config]])
,因此您应该像这样提出请求

const signIn = (email, password) => API.post("/auth/users/", {
    email : email,
    password : password 
  },
  config
)

params
是与请求一起发送的URL参数

您使用的
post
实例方法的签名是
axios#post(url[,data[,config]])
,因此您应该像这样提出请求

const signIn = (email, password) => API.post("/auth/users/", {
    email : email,
    password : password 
  },
  config
)

你能分享你的Django代码吗?错误请求(400)错误不是由于CORS策略造成的。Django代码的哪一部分或文件?您可以共享您的Django代码吗?错误请求(400)错误不是由于CORS策略造成的。Django代码的哪个部分或文件?谢谢,我用这种方式尝试了,但仍然不起作用。谢谢,我用这种方式尝试了,但仍然不起作用。谢谢,我用这种方式尝试了,但仍然不起作用。是的,我们仍然需要看到响应和请求对象。您可以在开发工具的“网络”选项卡中找到它们。使用屏幕截图更新您的问题或复制整个文本(标题和正文数据)。这样我们可以进一步排除故障。谢谢,我刚刚添加了images@Nick DawesThanks,我尝试了这种方法,但仍然不起作用。是的,我们仍然需要查看响应和请求对象。您可以在开发工具的“网络”选项卡中找到它们。使用屏幕截图更新您的问题或复制整个文本(标题和正文数据)。这样我们就可以进一步排除故障。谢谢,我刚刚添加了图片@Nick Dawes