【问题标题】:$.getJSON is not working with my website$.getJSON 不适用于我的网站
【发布时间】:2011-01-21 18:21:43
【问题描述】:

我正在尝试使用 $.getJSON 向我的站点发出跨域请求,但它不起作用:回调函数未调用。我找到了这个简单的例子:

 $.getJSON('http://twitter.com/users/usejquery.json?callback=?', function(data) { 
  console.log(data); 
 });

它适用于 twitter,但不适用于我的网站。我复制的文件被返回,来自 Twitter 的服务器响应标头,它仍然无法正常工作。我不知道如何调试它并找出问题所在。

有人知道它是什么吗?

【问题讨论】:

  • 您的网站在什么平台上运行?是 PHP、ASP .Net Web 表单、ASP .Net MVC、Ruby on Rails 吗?有关您的设置的更多信息将有很大帮助。

标签: jquery cross-domain getjson


【解决方案1】:

你会返回JSONP吗? callback 参数的诀窍在于,返回的不是 JSON,而是以“JSON”作为参数的 JavaScript 函数调用。以上述 Twitter API 调用的结果为例。

jQuery.ajax() 文档也简要介绍了这一点(搜索 dataType 和 JSONP)。

至于为什么 Twitter 响应的副本不起作用:getJSON 调用的 callback=? 部分将填充 random 函数名称。 jQuery 为不与任何已经存在的函数发生冲突而编造名称,并在之后删除该函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-10
    • 1970-01-01
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    • 2021-01-15
    • 2020-03-26
    相关资源
    最近更新 更多