意外的标记 ':'。解析错误。在AJAX响应中

时间:2017-02-26 18:38:07

标签: jquery json ajax

我的Ajax请求代码:

$(window).ready(function () {
    var $form = $(document).find('#name-form');
    var $display = $(document).find('#display');
    $form.on('submit', function (e) {
        e.preventDefault();
        var name = $form.find('#name').val();
        var surname = $form.find('#surname').val();
        var patronymic = $form.find('#patronymic').val();
        var year = $form.find('#year').val();
        var request = $.ajax({
            headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
            },
            dataType: 'jsonp',
            method: 'get',
            jsonp: false,
            jsonpCallback: "localJsonpCallback",
            url: 'http://127.0.0.1:8885/search?app=potato',
            data : {
                name: name,
                surname: surname,
                patronymic: patronymic,
                year: year,
            }
        });
     function localJsonpCallback(json) {
            if (!json.Error) {
                $('#display').submit();
            }
            else {
                $('#display').show();
                alert(json.Message);
            }
        }
    });
});

此代码发送请求,这是肯定的。但是当它获得JSON时,控制台会写错误Unexpected token ':'. Parse error.我只需要在div中显示这个json或它的内容。

响应JSON是:

{
  "Report": "http://127.0.0.1:8099/chicken/eggs.html",
  "Exist": true
}

有什么问题?

1 个答案:

答案 0 :(得分:2)

你告诉jQuery你想要JSONP,但是服务器正在返回JSON。

由于jQuery处理JSONP的方式,普通的JSON被视为javascript,因此您获得的错误实际上是浏览器的javascript解释器抛出的语法错误。 / p>