jquery 从本地套接字获取JSON

发布于 2024-10-28 08:55:47 字数 1067 浏览 3 评论 0原文

我在使用 json.getJSON 方法时遇到问题。这是我当前的代码:

var jqxhr = $.getJSON("http://127.0.0.1:5002?callback=?", function() {
                alert("success");
            })
            .success(function() { alert("second success"); })
            .error(function() { alert("error"); })
            .complete(function() { alert("complete"); });

它几乎与 jquery 文档中的示例完全相同。但是,我从未点击回调函数(alert(“success”))。我总是最终收到错误警报。通过我正在使用的 URL 上的空回调,我可以在 FireBug 中看到成功的 JSON GET 方法,并且 FireBug 完美地呈现 JSON。如果没有该 URL 中的回调,我在 Firebug 中看不到 JSON。但是,当我直接使用 Firefox 点击 http://127.0.0.1:5002 时,JSON 显示得很好。

这是 JSON:

{"AllData":[{"dataName":"TestData","data":[0,0,0],"color":"Green"}]}

我尝试过使用或不使用 MIME 类型 application/json、application/javascript、application/x-json、application/x-javascript、text/javascript 和 text/plain 的 URL 回调,但不能从 .getJSON 接收“成功”警报。

这个 JSON 可以用 jquery.parseJSON 很好地解析,甚至当我使用 .getJSON 并从 .js 文件中提取 JSON 时也可以完美地工作。

有什么建议吗?是否可以使用 .getJSON 从套接字读取 JSON?

I am having trouble with the json.getJSON method. Here is my current code:

var jqxhr = $.getJSON("http://127.0.0.1:5002?callback=?", function() {
                alert("success");
            })
            .success(function() { alert("second success"); })
            .error(function() { alert("error"); })
            .complete(function() { alert("complete"); });

It is almost exactly like the example from the jquery documentation. However, I never hit the callback function (alert("success")). I always end up receiving the error alert. With the empty callback on the URL I am using, I can see a successful JSON GET method in FireBug and FireBug renders the JSON perfectly. Without the callback in that URL, I do not see the JSON in Firebug. However, when I hit http://127.0.0.1:5002 directly with firefox, the JSON appears just fine.

Here is the JSON:

{"AllData":[{"dataName":"TestData","data":[0,0,0],"color":"Green"}]}

I have tried both with and without the callback on the URL with MIME types application/json, application/javascript, application/x-json, application/x-javascript, text/javascript, and text/plain but cannot receive a "success" alert from the .getJSON.

This JSON parses just fine with jquery.parseJSON and even works perfectly when I use .getJSON and pull the JSON from a .js file.

Any suggestions? Is reading JSON from a socket with .getJSON even possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧伤还要旧人安 2024-11-04 08:55:48

您要添加 ?callback=? ,将其转换为 JSONP 请求。当回显 JSON 时,您需要将其包装在传递给服务器的回调函数中。

因此,不只是输出 JSON:

{"AllData":[{"dataName":"TestData","data":[0,0,0],"color":"Green"}]}

您需要输出 JSONP:

cFunc({"AllData":[{"dataName":"TestData","data":[0,0,0],"color":"Green"}]});

cFunc 替换为 callback GET 参数的值 ($_GET['callback']<例如,PHP 中的 /code>)。 jQuery 在执行 XHR 请求时将发送回调函数的名称,该名称将是对传递给 $.getJSON 的回调的引用。

You're adding ?callback=? which turns this into a JSONP request. When echoing the JSON, you need to wrap it in the callback function passed to the server.

So, instead of outputting just JSON:

{"AllData":[{"dataName":"TestData","data":[0,0,0],"color":"Green"}]}

You need to output JSONP:

cFunc({"AllData":[{"dataName":"TestData","data":[0,0,0],"color":"Green"}]});

Replace cFunc with the value of the callback GET parameter ($_GET['callback'] in PHP, for example). jQuery will send a name for a callback function when it does the XHR request, this name will be a reference to the callback passed to $.getJSON.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文