gpt4 book ai didi

jquery - 来自 jQuery get 的 JSON 响应引发 "Invalid label"

转载 作者:行者123 更新时间:2023-12-01 07:34:53 25 4
gpt4 key购买 nike

       $.ajax({
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', "Basic YWRtaW46YWRtaW4=");
},
url: "https://test.com/incident.do?JSON&callback=?&sysparm_action=getRecords",
dataType: "json",
contentType: "application/json",
method: 'GET',
success: function(a,b,c) {
alert(a);
}
});

我通过按下按钮来调用这个函数...Firebug 显示我收到了这个 JSON 响应(我知道它是有效的)[为清楚起见而被截断]

{
"records": [
{
"service_offering": "",
"number": "INC0000009"
},
{
"service_offering": "",
"number": "INC0000010"
}
]
}

Firebug 显示错误“无效标签 https://test.com/incident.do?JSON&callback=jsonp1279049933243&sysparm_action=getRecords第 1 行

我该如何解决这个问题?谢谢!

最佳答案

您的响应是 JSON,这是有效的,但这不是 jQuery 想要的。当您指定&callback=?时在 URL 中,jQuery 期待 JSONP 响应,这看起来不同,您的响应应该

jsonp1279049933243({
"records": [
{
"service_offering": "",
"number": "INC0000009"
},
{
"service_offering": "",
"number": "INC0000010"
}
]
});

当您指定 callback=? 时会发生什么是 jQuery 为您的 success 生成一个名称函数,在本例中 jsonp1279049933243 ,JSONP 的工作原理是生成 <script>标签在页面中,所以当它获取该 url 时,它实际上只是包含一个 JavaScript 文件,运行一个函数,但不是这样的:

<script type="text/javascript">
jsonp1279049933243({ "records": [....] });
</script>

现在有效发生的是:

<script type="text/javascript">
{ "records": [....] }
</script>

...这不是有效的 JavaScript。现在当然是通过 src=https://test.com/incident.do?JSON&callback=jsonp1279049933243&sysparm_action=getRecords 加载的,但无效语法/标签错误是相同的。

关于jquery - 来自 jQuery get 的 JSON 响应引发 "Invalid label",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3240889/

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