gpt4 book ai didi

javascript - 奇怪的 JSONP 语法错误

转载 作者:行者123 更新时间:2023-12-03 11:58:06 26 4
gpt4 key购买 nike

我陷入了这个奇怪的语法错误,指向 json 返回的第一个键:值对中的冒号。 JSONLint.com 表示 json 有效。有人可以帮忙吗? JSFiddle 链接如下。谢谢

http://jsfiddle.net/gbkester/hgt8bvb8/

$(document).ready(function() {
$.ajax({
type: "GET",
url: "http://forecast.weather.gov/MapClick.php?lat=38.14000&lon=-78.45000&FcstType=digitalJSON",
dataType: 'jsonp',
success: function (json) {
console.log(json)
}
})
})

最佳答案

在我看来,这个响应实际上并不是 JSONP。它看起来像直接的 JSON。

通常 JSONP 端点接受 callback= URL 参数。该参数的值用于命名包装实际对象的函数。因此,例如:

http://example.com/api/endpoint?callback=foobar

会返回如下内容:

foobar({"key":"value"});

你可以看到 jQuery 在 Fiddle 中尝试这样做:

http://forecast.weather.gov/MapClick.php?...&callback=jQuery11100967190676368773_1409103826888&_=1409103826889

callback= 正在命名它希望返回的函数,_= 是缓存清除的尝试。它希望看到如下所示的响应:

jQuery11100967190676368773_1409103826888({ ... });

添加或删除此参数似乎不会更改响应内容。由于没有方便的 API 文档,他们可能为此使用不同的参数。例如,如果他们使用 bazquux 作为参数,您可以将请求更改为:

$.ajax({
...
url: "http://forecast.weather.gov/MapClick.php?lat=38.14000&lon=-78.45000&FcstType=digitalJSON&bazquux=?",
...
})

注意文字&bazquux=?

关于javascript - 奇怪的 JSONP 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25517521/

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