首页 文章

向django提出axios请求

提问于
浏览
0

我在使用axios对django做出反应时发送和接收数据时遇到了一个复杂的问题 . 我没有使用REST API . 这是我的Handel函数,它与我的注册表单标记相关,每次单击提交按钮后,此函数执行:

HandelSignUp(e){

e.preventDefault();
let Username = this.refs.username.value;
let Pass = this.refs.pass.value;
let Email =this.refs.email.value;
axios({
  url:'http://127.0.0.1:8000/signupAuth/',
  mothod:'post',
   data:{
    username:this.Username,
    pass:this.Pass,
    email:this.Email
   },
   headers: {
      "X-CSRFToken": window.CSRF_TOKEN,
      "content-type": "application/json"
            }

}).then(respons =>{
  console.log(respons);
})
.catch(err =>{
  console.log(err);
});

这也是我的django urls.py

urlpatterns = [

path('signupAuth/',ReactApp_View.signupRes),

]

ReactApp_View是我在正确导入的ReactApp文件中的 views.py . 好的,现在让我们看看我的 views.py

def signupRes(request):
  body_unicode = request.body.decode('utf-8')
  data = json.loads(myjson)
  return HttpResponse(request.body)

毕竟当我填写我的注册字段然后点击按钮时,我在浏览器的控制台日志中看到这个按摩:

无法加载http://127.0.0.1:8000/signupAuth/:对预检请求的响应未通过访问控制检查:请求的资源上没有“Access-Control-Allow-Origin”标头 . 因此不允许Origin'http:// localhost:8000'访问 .

我该怎么办?

还有一个额外的问题:在我的axios中给定的URL会发生什么?

2 回答

  • 0

    只需使用您尝试呼叫的相同主机网址打开您的网站即可 . 使用http://127.0.0.1:8000/而不是localhost

  • 0

    您必须在后端允许请求

    CORS_ORIGIN_WHITELIST = (
    'http://127.0.0.1:8000',
    'http://localhost:8000'
    )
    

    要么

    response["Access-Control-Allow-Origin"] = "*"
    

相关问题