为啥我的 $.getJSON 工作但不执行 onsuccess 部分?

Posted

技术标签:

【中文标题】为啥我的 $.getJSON 工作但不执行 onsuccess 部分?【英文标题】:Why does my $.getJSON work but not execute the onsuccess part?为什么我的 $.getJSON 工作但不执行 onsuccess 部分? 【发布时间】:2012-03-01 14:18:09 【问题描述】:

我有这个 javascript

var signUp = 
    share: function(response) 
        alert('hello');
    


$.getJSON("http://pgthatworks.com/?callback=?", email:signUp.email, api:signUp.api, ref:signUp.ref, function(response)
signUp.share(response);
);

$.getJSON() 一直工作到它将数据发送到指定页面并且该页面正在执行它的工作,但 function(response) 部分不执行。知道为什么吗?

【问题讨论】:

尝试在 chrome 中查看网络选项卡,并检查您是否真的得到响应或错误 @vittore 我只是看到一个 GET 请求 您是否尝试记录服务器返回的数据?也许你错过了什么地方 使用完整的 ajax 请求,让我们知道您在回调时收到的错误 - jsfiddle.net/cRgxZ @JibiAbraham 是的 - 这是一个 JSON 返回的示例 ["http:\/\/pgthatworks.com\/?ref=rbpxM",1] - 这应该有问题吗? 【参考方案1】:

在我看来,您正在执行跨域请求。我这样说是因为您在 getJSON 请求中指定了完整的 URL 以及查询字符串中的回调参数。如果是这种情况,那么您的 php 需要发回正确的 JSONP。那就是:

print $callbackString.'('.json_encode($your_array).')';

【讨论】:

我正在做 JSONP,所以这完全有道理,但 $callbackString 会是什么?我试过http://pgthatworks.com/?callback=?,但仍然返回parsererror $callbackString 是 jQuery 设置的查询参数的值。例如。 $callbackString = $_REQUEST['callback'] 啊...漂亮!非常感谢!

以上是关于为啥我的 $.getJSON 工作但不执行 onsuccess 部分?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery中的getJSON方法的url参数中,为啥加上callback=

序列化表单getjson不起作用

为啥我的 discord.py 机器人不响应 on_message 事件?

为啥我在 AWS API 上收到“无权执行:ecs:ListTasks on resource:*”异常

jQuery.getJSON().error() 没有在 404 错误上执行

$.getJson 失败,尽管 weatherapp 链接正常工作