gpt4 book ai didi

javascript - Jquery getJSON 未使用有效的 json 响应触发回调

转载 作者:行者123 更新时间:2023-11-28 21:24:26 25 4
gpt4 key购买 nike

我有一个服务器返回有效的 json 对象(由 jsonlint.com 验证),如下所示:

"{\"encryption\": {\"key\": \"gKV0oPJwC5CBQxmn\"}}"

我的 html 文件如下所示:

<html>
<head>
<title>Testing Jsonp</title>
<script type="text/javascript" src='jquery-1.4.4.js'></script>
<script type="text/javascript" src='app.js'></script>
</head>
<body>
<input type='text' value='thing' id='target' />
<a href='' class='init'>Click</a>
</body>
</html>

app.js 看起来像这样:

$(document).ready(function(){
$('.init').click(function(event){
$.getJSON("http://localhost:37280/sites/1/encode?callback=?", { key: $("#target").attr('value') }, function(data){
alert('Success!');
});
event.preventDefault();
});
});

当我点击“Click”时,Chrome 网络控制台指示请求已发送,我的服务器日志确认已收到请求,并且 Chrome 指示它收到上述 json 字符串。但随后什么也没有发生。我没有收到让我相信我的回调没有执行的警报。任何帮助将不胜感激!

最佳答案

这不是有效的 JSON。 JSONLint 似乎(最近?)声称原始字符串是有效的 JSON。这不是真的。 JSON 根必须始终是数组或对象。 RFC 4627 说:

"A JSON text is a serialized object or array."

此外,您正在使用 JSONP,因此您需要包含回调,而您尚未在响应中显示该回调。

如果实际的 URL 是 http://localhost:37280/sites/1/encode?callback=jsonp1234

其中 jsonp1234 是 jQuery 选择的函数名称,响应必须是:

jsonp1234({"encryption": {"key": "gKV0oPJwC5CBQxmn"}});

请注意,与所有 JSONP 一样,这实际上是 JavaScript。这样就可以跨域了。

关于javascript - Jquery getJSON 未使用有效的 json 响应触发回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5424713/

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