Jquery Ajax - 未捕获的SyntaxError - 意外的令牌

时间:2013-10-12 20:16:53

标签: javascript jquery ajax jsonp

我正在尝试向临时数据源发出AJAX jsonp请求以进行测试。这是我正在使用的代码:

$('#search').click(function (event) {
    $.ajax({
        url: "http://api.test.com/v1/",
        type: "GET",
        contentType: "application/json",
        dataType: "jsonp",
        data: {q:$("#keyword").val()},
        timeout: 5000,
        beforeSend: function () {
            $('#content').fadeTo(500, 0.5);
        },
        success: function (data, textStatus) {
            $('html, body').animate({
                scrollTop: '0px'
            }, 300);
        $('#content').html(data.objects[0].category+'<br>'+data.objects[0].company);
        },
        error: function (x, t, m) {
            if (t === "timeout") {
                alert("Request timeout");
            } else {
                alert('Request error');
            }
        },
        complete: function () {
            $('#content').fadeTo(500, 1);
        }
    });
});

当我尝试运行命令时,我收到以下错误:

  

Uncaught SyntaxError:意外的令牌:

我一般都是jquery和ajax的新手,这让我很难过。我哪里出错?

2 个答案:

答案 0 :(得分:4)

您正在使用的网址似乎不是JSONP服务。它返回了一个普通的JSON结构,并且不会为JSONP工作。

您需要为该服务找出替代API,即JSONP,或者从您的服务器查询。

答案 1 :(得分:0)

如果您使用JSONP作为数据类型,它从服务器返回应该是这样的

jQuery111207659580435138196_1433210804043({"status" : "success"})