【问题标题】:AJAX success callback function not called未调用 AJAX 成功回调函数
【发布时间】:2023-03-08 00:56:02
【问题描述】:

我正在一个简单的网站上使用 python 和 js。 我正在尝试从客户端调用一个方法并获得结果,但无论我做什么 成功功能没有发生。

这是我的 JS

 $.ajax({
        url: "http://127.0.0.1:8000/api/gtest/",
        type: "POST",
        data: { information : "You have a very nice website, sir."},
        dataType: "json",
        success: function(data) {
            alert ("post is success");
        },
        error: function(request,error) { 
            alert(request.responseText);
            alert(error);
        }
    });

这是我的服务器端代码

def gtest(request):
    jsonValidateReturn = simplejson.dumps({"jsonValidateReturn": "ddddd"})
    return HttpResponse(jsonValidateReturn, content_type='application/json', mimetype='application/json')   

服务器响应调用 - "POST /api/gtest/HTTP/1.1" 200 31

试图在这里解决类似的问题,但没有成功:\ 无论我做什么,都只会调用错误函数。 错误警报始终为空.. 没有实际消息。

我知道这可能是一个小改动,但我找不到。

【问题讨论】:

  • .ajax() 调用是从哪里触发的?
  • 如果我们知道error 回调中的警报内容,您不认为这会有所帮助吗?通常,当您返回 200 状态但它转到 error 时,这意味着解析/返回的数据存在问题。
  • 你知道gtest是否正在运行吗?
  • .ajax() 是从一个简单的“onclick”函数调用的.. 错误总是空的.. 我知道消息 gtest 正在运行,因为我打印到控制台并打印了..跨度>
  • 会不会有跨域问题?如果您从localhost 运行JS 并将请求发送到127.0.0.1,就会出现这种情况。您在request.status 中的响应代码是什么?如果是0,表示跨域错误;如果是200,则不是。

标签: javascript python ajax django


【解决方案1】:
 $.ajax({
    url: "http://127.0.0.1:8000/api/gtest/",
    type: "POST",
    data: { 
         'information' : "You have a very nice website, sir.",
         'csrfmiddlewaretoken': '{{csrf_token}}'
    },
    contentType: "application/json;charset=utf-8",
    dataType: "json",
    success: function(data) {
        alert ("post is success");
    },
    error: function(request,error) { 
        alert(request.responseText);
        alert(error);
    }
});

【讨论】:

  • 解释 csrfmiddlewaretoken
  • 我也遇到过你的问题,无法成功。我不知道为什么,但是当我检查我的数据时,它正在保存,但输出没有成功。
【解决方案2】:

我不能赞成 mccannf 的评论。

他发布的link 解决了这个问题,我从我的电脑上的一个文件中运行了 html 代码,我需要从服务器加载它,所以链接不会以 file:// 开头,而是以 http://

最好的问候..

【讨论】:

    猜你喜欢
    • 2013-08-04
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    相关资源
    最近更新 更多