【问题标题】:jquery jsonp not workingjquery jsonp不工作
【发布时间】:2013-02-11 18:16:43
【问题描述】:
$(document).ready(function() {

$.getJSON('https://jira.atlassian.com/rest/api/latest/project?callback=?', function(data) {
    console.log("success");
});
});

为什么这段代码不起作用?它在浏览器中也没有给出错误。但是,如 Inspect Element 工具所示,项目文件正在 Chrome 中作为脚本下载。如何从文件中获取数据?

【问题讨论】:

  • 请不要告诉我们您遇到了错误,也不要告诉我们错误是什么。我们不是读心者。

标签: javascript jquery json jsonp


【解决方案1】:

看起来 Atlassian 使用 jsonp-callback 而不是 callback 作为 JSONP 回调的查询字符串中的参数。

See here.

【讨论】:

    【解决方案2】:

    我建议您使用 jQuery.ajax API 配置您的 JSONP 调用,例如:

    $(function() {
      $.ajax({
        type: "GET",
        url: "https://jira.atlassian.com/rest/api/latest/project",
        dataType: "jsonp",
        jsonp: "jsonp-callback",
        data: { /* additional parameters go here */ }
      }).done(function(data) {
        console.log("success");
      });
    });
    

    jsonp 选项将 JSONP 回调参数重命名为 API 建议的 @mccannf。

    【讨论】:

      【解决方案3】:

      另外,为了将来的参考,您可以考虑使用 jqXHR 对象来添加错误处理功能,这样您就可以判断 JSON 请求是否失败。请参阅 jQuery 的参考资料 (http://api.jquery.com/jQuery.getJSON/)

      $(document).ready(function() {
          var jq = $.getJSON('https://jira.atlassian.com/rest/api/latest/project?callback=?',
                    function(data) {
                      console.log("success");
                    })
          .error(function() { console.log("error occurred"); });
      });
      

      【讨论】:

        猜你喜欢
        • 2016-12-24
        • 2015-07-06
        • 2013-09-29
        • 2013-10-16
        • 2013-06-30
        • 2015-07-12
        • 2011-07-21
        • 2013-02-09
        • 2014-04-19
        相关资源
        最近更新 更多