gpt4 book ai didi

javascript - 使用 JSONP 时出现 "invalid label"?

转载 作者:数据小太阳 更新时间:2023-10-29 06:03:08 24 4
gpt4 key购买 nike

我的 JSONP 请求有问题..数据不会显示,Firebug 显示“无效标签”错误..

enter image description here

我的 JavaScript:

$.ajax({
url: link,
dataType: "jsonp",
beforeSend: function(xhr) {
var base64 = btoa(username + ":" + password);
xhr.setRequestHeader("Authorization", "Basic" + base64);
xhr.overrideMimeType("application/json");
},
jsonpCallback: "getResources"
})

function getResources(data) {
alert(data);
alert(JSON.parse(data));
$.each(data.groupStatus, function(i, item) {
$("body").append("<p>ID: " + item.id + "</p>");
});
}

我的 JSON:

{
"groupStatus": [
{
"id": "Application Layer Configuration-ApplicationLayer",
"time": 1332755316976,
"level": 0,
"warningIds": [],
"errorIds": []
},
{
"id": "Application Layer-ApplicationLayer:nscalealinst2",
"time": 1333431531046,
"level": 0,
"warningIds": [],
"errorIds": []
}
]
}

我的 HTML:

<html>
<head>
<title>Monitor</title>
<link href="css/gadget.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery-1.7.2.js"></script>
</head>
<body>
<div id="content"></div>
<script type="text/javascript" src="js/gadget.js"></script>
</body>

请求工作正常,但无论如何都没有显示数据。

enter image description here

我搜索了好几天的解决方案。有人可以帮助我吗?提前致谢!

解决方案(更新:06.09.12)

我已经解决了这个问题。执行的服务器(REST 接口(interface))没有实现回调函数。不使用 JSONP 设置跨域请求的另一种方法是设置以下 jquery 变量:

jQuery.support.cors = true;

最佳答案

对 JSONP 调用的响应需要将 JSON 本身包装在函数调用中,其中被调用函数的名称通常在 url 中提供。 jQuery 会自动向请求的 URL 添加一个查询字符串参数“callback”,因此您服务器上的脚本应该执行类似以下操作:

// assuming that $JSON contains your JSON content
print "{$_REQUEST['callback']}( {$JSON} );";

将函数名称添加到响应的原因是 JSONP 请求实际上是附加到 DOM 的脚本标记,而不是 XMLHttpRequest 对象发出的常规请求。使用 JSONP 允许浏览器发出跨域请求,否则这些请求将被(默认情况下)应用于 XHR 的跨域策略阻止。

关于javascript - 使用 JSONP 时出现 "invalid label"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10084044/

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