【问题标题】:POST form data from third party website to Django将表单数据从第三方网站发布到 Django
【发布时间】:2019-01-30 20:56:59
【问题描述】:

我正在托管一个存储用户信息的 Django 网站。但是,我想在第三方网站上托管表格,例如时事通讯注册。我希望能够从 URL 中的查询集中获取信息并将其发布回我的 Django 站点。我有一个小脚本,它获取查询集信息并将其放入表单上的隐藏字段中,然后发布该数据。不过,目前这是在我的网站上完成的。

如果我要在其他人的网站上托管表单,最好的方法是什么?使用阿贾克斯?或者只是将操作更改为我的 Django 网站的完整 URL?我会遇到跨站点伪造等问题吗?理想情况下,Ajax 会更好,因为如果用户单击提交,验证将不会刷新页面并丢失 URL 中的查询集。任何帮助将不胜感激:微笑:

【问题讨论】:

  • 您将不得不删除 Django 视图上的 CSRF 验证,否则您将收到 HTTP 错误。您可能需要考虑使用 django.views.decorators.csrf import csrf_exempt 装饰器中的 usgin 如果不可能,一种解决方法可能是使用 iFrame,但我从未对此进行过测试。

标签: javascript python ajax django


【解决方案1】:

我用 Ajax 做过类似的事情。你能在表格的最后加上这样的东西吗?在表单中,您将包含您发布的 type=post 和 url。

$('body').on("submit",'#my_form',function(event){
    event.preventDefault();
    url = $(this).attr('action')
    type = $(this).attr('method')


    var username = $('#username').val()
    var email = $('#email').val()


    $.ajax({
        type: type,
        url: url,
        data: {'username':username,'email':email},
        success: function(resp){
            console.log(resp)
        },
        error: function(resp){
            console.log(resp)
        }
    })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-06
    相关资源
    最近更新 更多