1

我正在尝试向临时数据源发出 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: Unexpected token :

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

4

2 回答 2

4

您使用的那个 URL 似乎不是 JSONP 服务。它返回一个普通的 JSON 结构,这不适用于 JSONP。

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

于 2013-10-12T20:23:05.710 回答
0

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

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

于 2015-06-02T02:38:49.797 回答