意外的令牌<在JSON的位置2 jquery自动完成

Igo*_*iro 5 ajax jquery jquery-ui-autocomplete

我有一个jQuery"autocomplete"的AJAX请求,如下面的代码:

    var clientesList = [];

    $("#clientes").autocomplete({
        source: function (request, callback) {
            $.ajax({
                type: "POST",
                url: "../../../Cliente/GetClientesByName",
                data: "{'nome':'" + request.term + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    debugger;
                    callback($.map(data.cities, function (obj) {
                        return obj.Main
                    }))
                }
            })
        }
    })
Run Code Online (Sandbox Code Playgroud)

触发事件时,错误显示在jquery.min中?

"创建:2未捕获的SyntaxError:意外的令牌<在位置2的JSON中"

我的输入HTML是这样的:

<input type="text" id="clientes" class="form-control col-md-10" />
Run Code Online (Sandbox Code Playgroud)

Phi*_*hil 5

我的猜测是,由于您的 JSONdata属性格式错误,您的服务器端资源返回了 HTML 错误,因此<响应中出现了意外字符。

通过创建有效的 JSON 字符串来修复您的数据...

data: JSON.stringify({nome: request.term}),
Run Code Online (Sandbox Code Playgroud)

这将产生一个像

{"nome":"whatever you typed"}
Run Code Online (Sandbox Code Playgroud)

这是有效的,而不是

{'nome':'whatever you typed'}
Run Code Online (Sandbox Code Playgroud)

这不是由于单引号引起的,而且可能更糟,具体取决于request.term.