gpt4 book ai didi

javascript - AJAX 帖子;变量总是返回 null

转载 作者:行者123 更新时间:2023-12-02 17:59:29 25 4
gpt4 key购买 nike

我想知道我的代码是否有问题。我想做 2 个 AJAX 帖子。如果第一个成功,则应该执行第二个。在这里你可以看到我的代码:

var lat = $('#lat').val();
var lng = $('#lng').val();
var test;
$.ajax({
url: "http://api.geonames.org/findNearbyPostalCodes",
type: "GET",
data: {lat: lat, lng: lng, radius: 20, maxRows: 100, country: "CH", username: "bbag8274"},
success: function(scriptData, textStatus, jqXHR){

// second
test = scriptData;
alert($.parseXML( test ));
$.ajax({
url: "test_data.php",
type: "POST",
data: {xmldata: test},
contentType: "text/xml",
success: function(secondScriptData, textStatus, jqXHR){
alert(secondScriptData);
},

error: function(jqXHR, textStatus, errorThrown){
alert('Unknown error, report it!');
}
});

// end second

},
error: function(jqXHR, textStatus, errorThrown){
alert('fail');
}
});

我创建了 var test 来测试它提醒我的内容。这就是重点。它总是提醒我null。所以我的参数 scriptData 始终为 null。我不明白为什么。我在哪里犯了错误或者根本就没有错误?

欢迎提出建议:)

提前致谢

干杯

最佳答案

您调用的 API 返回一个 XML 对象。它具有正确的 XML content-type header ,并且您不会覆盖 jQuery 的解析引擎。这意味着 jQuery 在将 XML 文档传递到 scriptData 之前将其解析为 DOM。

然后将该值传递给 $.parseXML。这是一个接受字符串输入并解析为 DOM 的方法。

由于 DOM 不是字符串,因此它将转换为字符串 ("[Object document]")。这不是有效的 XML,因此 XML 解析器将为您提供 null

不要使用$.parseXML

<小时/>

然后你就会遇到另一个问题。

data: {xmldata: test} 也会导致 DOM 转换为字符串 "[Object document]" 因此您将无法获取 XML 文档在下一个请求中。

如果您想要响应的原始文本,请使用 jqXHR.responseText 而不是 scriptData

关于javascript - AJAX 帖子;变量总是返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20679312/

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