【问题标题】:JQuery jsonp callback not firing when server responds with 200当服务器以 200 响应时,JQuery jsonp 回调未触发
【发布时间】:2015-04-10 00:39:50
【问题描述】:

我正在尝试使用 jquerys ajax 函数访问公共 api。我可以看到请求以 HTTP 代码 200 响应,并且有开发人员工具的数据,但成功方法没有触发,有错误

错误:未调用 mycallback

$.ajax({
        url: rootUrl + endpoints[0],
        type: "GET",
        data: {
            all: false,
            date: getIsoDate(),
            city_id: 3
        },
        crossDomain: true,
        dataType: "jsonp",
        jsonpCallback: 'mycallback',
        success: function (data) {
            alert('success');

            console.log(data);



        },
        error: function (xhr, status, error) {
            alert(error);
        },
    });

function mycallback(data) {
    alert("jsonpCallback");
}

如果我尝试将数据类型设置为 json,它会得到不存在的跨站点域源头。

【问题讨论】:

  • 你确定 API 完全支持 JSONP 吗?
  • 你可以试试window.mycallback = function(data) { ... ,因为它应该是全局的
  • 它肯定会以 json 响应,我可以将请求 url 粘贴到浏览器中并获得 json 响应
  • 但是 JSON 不是 JSONP,不是一回事

标签: jquery ajax jquery-ajaxq


【解决方案1】:

您不必同时定义回调和成功。尝试删除回调,因为 Jquery 会以更好的方式为您处理。您可以在成功块中进行处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-05
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 2021-01-06
    • 2011-12-14
    • 2020-06-30
    • 1970-01-01
    相关资源
    最近更新 更多