Django Ajax 403 仅在从自定义 localhost url 发布时

Posted

技术标签:

【中文标题】Django Ajax 403 仅在从自定义 localhost url 发布时【英文标题】:Django Ajax 403 only when Posting from custom localhost url 【发布时间】:2017-06-16 06:34:33 【问题描述】:

我按照所有说明让 Ajax 与 Django 一起正常工作(ajaxSetup 在每个请求上添加 X-CSRFToken 标头等),现在该部分工作正常。

我正在使用 django-rest-framework、django-allauth 和 rest-auth

我现在正在尝试使用 DRF 测试 Facebook 登录,因为 Facebook 不允许 localhost 成为我编辑的注册应用程序 ~/etc/host 并添加 local.test.com 作为 127.0.0.1 的别名。现在,每当我尝试向 Django 发帖时,我都会再次被禁止 403。我认为这可能与 Request URLRemote Address 不同有关,但我真的不知道如何处理它。

由于我不确定问题出在哪里,我认为在 github 上分享项目链接更有意义:https://github.com/Sebastiansc/Sauti

我该怎么做才能让来自 local.test.com 的 POST Ajax 请求正常工作?

【问题讨论】:

【参考方案1】:

试试@csrf_exempt

from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def your_view(request):
    print "fff"
    print "do your things..."

【讨论】:

以上是关于Django Ajax 403 仅在从自定义 localhost url 发布时的主要内容,如果未能解决你的问题,请参考以下文章

仅在 Opera 上的 ajax 发布请求上的 Django CSRF 失败

Django - 使用 ExtJS 发布 ajax 请求禁止 403

Datatables Ajax 在从文件中读取 JSON 时起作用,但从变量中读取 JSON 时不起作用(Django)

为啥我的应用程序在从自定义视图启动 Activity 后关闭?

EC2Config 服务是不是应该出现在从自定义创建的 AMI 启动的实例中?

仅在 HTTPS 中执行 ajax POST 请求时,Laravel 403 错误(生产)