gpt4 book ai didi

javascript - AJAX 回调从未调用,不成功或错误

转载 作者:行者123 更新时间:2023-12-02 14:40:00 24 4
gpt4 key购买 nike

document.getElementById('myform').addEventListener('submit', function (e) {

// voorkomt de standaard actie van de submit
e.preventDefault();
$(function () {
var artiest = document.getElementById("artiest");
var rijen = document.getElementById("rij");
var kolommen = document.getElementById("kolom");

var CGIurl = 'http://localhost:8000/cgi-bin/schuifpuzzel.py?artiest=' + artiest.value +
"&rijen=" + rijen.value + "&kolommen=" + kolommen.value + "&callback=jsonp";

$.ajax({
type: 'GET',
url: CGIurl,
dataType: "jsonp",
success: function(data){
console.log(data)
}

});

});
});

当按下提交按钮时,我尝试运行此 AJAX 来执行我的 CGI 脚本。因此,我使用了 eventListenerpreventDefault

GET 似乎工作正常,因为这些是我在浏览器中测试时得到的结果

响应 header 中的 JSON 是我要检索的 JSON。但由于某种原因,我的 AJAX 中的成功或错误被调用,所以我无法访问 JSON。

最佳答案

我发现有两件事是不正确的:

  • JSON 响应数据在响应 header 中发送,而不是在响应正文中发送;
  • jQuery 正在执行 JSONP 请求,这意味着响应应该是有效的 Javascript (而不是 JSON),它应该调用提供的回调函数(如果没有被调用,jQuery 将不会'不知道请求已完成,因此 successerror 回调都不会被调用);

修复此问题取决于您是否需要 JSONP。如果没有,只需使用 json 作为数据类型,并确保 JSON 数据位于响应正文中。如果您确实需要 JSONP,您的 CGI 脚本应该提供有效的 JS 响应,如下所示:

jQueryXXX({ "content" : { "size" : ... } });

(其中 jQueryXXX 应该是 callback 查询字符串参数的值)

关于javascript - AJAX 回调从未调用,不成功或错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37098579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com