gpt4 book ai didi

jQuery ajax 请求使用 jsonp 错误

转载 作者:行者123 更新时间:2023-12-03 22:45:22 24 4
gpt4 key购买 nike

我正在编写一个应用程序,我需要从另一台服务器访问客户端的一些 json 数据。由于跨域问题,我计划使用 jsonp。 jQuery 允许我使用 $.getJSON() 方法来执行此操作,但是,我无法判断该方法是否失败(即服务器没有响应或其他)。所以我尝试了使用 $.ajax 来获取 JSON 数据的方法。但它不起作用,我不知道该尝试什么。这是显示我的问题的示例:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>TEST</title>
<script type="text/javascript" src="scripts/jquery-1.5.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#button_detect').click(function(){
var feedApiAjax = 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q=';
var feedApiGetJSON = 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=?&q=';
var feedUrl = 'http://www.engadget.com/rss.xml';

$.ajax({
url: feedApiAjax + feedUrl,
datatype: 'jsonp',
success: function(data) {
console.log('$.ajax() success');
},
error: function(xhr, testStatus, error) {
console.log('$.ajax() error');
}
});

$.getJSON(
feedApiGetJSON + feedUrl,
function(data) {
console.log('$.getJSON success');
});
});
});
</script>
</head>
<body>
<div id="button_detect">CLICK ME!!!!</div>
</body>

如果您使用此代码创建一个网页并单击“Click Me”div,您将看到 $.getJSON 请求正在运行,而 $.Ajax 请求则不起作用。我尝试过添加/删除“callback=?” tg,使用了“jsonp”和“json”数据类型,但这些都不起作用。

知道我可能做错了什么吗?

干杯!

最佳答案

当 dataType 为 jsonp 时,jquery 不会自动触发错误函数。文档中的“错误”选项对此进行了描述:

Note: This handler is not called for cross-domain script and JSONP requests. see here.

解决方法是显式指定超时作为选项。如果服务器在指定时间内没有响应,则将调用错误函数。有关此的更多信息 here .

关于jQuery ajax 请求使用 jsonp 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5247295/

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