JSONP解析错误,意外令牌:

时间:2018-01-12 13:14:54

标签: jquery jsonp

是否可以像JSONP一样包装JSON响应?从这种响应格式(这是我得到的响应类型):

{"specialOffer":"rollback","format":"json"}

这种格式

jQuery321049913783140015044_1515731209916({"query":"test"})

我收到解析错误Uncaught SyntaxError:意外的令牌:

Error image

但是当我将网址粘贴到浏览器或Chrome Rest客户端时,我可以正确看到响应,所以我不明白如何才能访问响应。

$(document).ready(function(){
    $.getJSON({
        type: 'GET',
        url: 'http://api.urlexample.com/',
        contentType: 'application/json; charset=utf-8',
        dataType: 'jsonp',
        crossDomain: true
    })
    .done(function(response) {
        console.log(JSON.stringify(response.data));

        console.log(response);
    })
    .fail(function (jqXHR, exception) {
        var msg_err = "";
        if (jqXHR.status === 0) {
            msg_err = "Not connect. Verify Network.";
        } else if (jqXHR.status == 404) {
            msg_err = "Requested page not found. [404]";
        } else if (jqXHR.status == 500) {
            msg_err = "Internal Server Error [500].";
        } else if (exception === "parsererror") {
            msg_err = "Requested JSON parse failed.";
        } else if (exception === "timeout") {
            msg_err = "Time out error.";
        } else if (exception === "abort") {
            msg_err = "Ajax request aborted.";
        } else {
            msg_err = "Uncaught Error. "+ jqXHR.responseText;
        }
        alert(msg_err);
    })
    .always(function() {
        alert("complete");
    });
    });

如果我使用参数jsonpCallback:myCallback,它会访问回调函数,但我收到错误:

回调功能

window.myCallback = function(data) {

    console.log('Accessed callback');
};

输出

  

jQuery.Deferred异常:无法分配给只读属性   '未定义'对象'#' TypeError:无法分配给读取   只有财产' undefined'对象#'

0 个答案:

没有答案