Javascript Jquery JSONP请求获得200个带有数据但标记为错误的响应

Javascript Jquery JSONP请求获得200个带有数据但标记为错误的响应,javascript,jquery,jsonp,Javascript,Jquery,Jsonp,获得了一个简单的自动完成框(jQueryUI),该框从web服务获取其源代码。代码如下所示: var autocompleteOptions = { source = getDataFromService, minLength: 3 }; var getDataFromService = function(request, response) { var ajaxOptions = { url: "http://myservice:1234/someda

获得了一个简单的自动完成框(jQueryUI),该框从web服务获取其源代码。代码如下所示:

var autocompleteOptions = {
    source = getDataFromService,
    minLength: 3
};

var getDataFromService = function(request, response) {
    var ajaxOptions = {
        url: "http://myservice:1234/somedata/",
        dataType: "jsonp",
        data: "someVariable = " + request.term,
        success: function(data) { alert("data"); },
        error: function(xhr, description, error) { alert("failed"); }
    };

    $.ajax(ajaxOptions);
}

$(someSelector).autocomplete(autocompleteOptions);
查看fiddler甚至FirefoxFirebug面板,我可以看到JSON被正确返回,服务器响应是200。我甚至检查了创建的jsonp脚本片段,其中也包含正确的JSON。然而,它总是命中错误函数,而不是成功函数

我还尝试使用complete并手动从xhr获取数据,但是responseText和responseXml都没有定义。包含的错误表示parse error,但它似乎在语法上是正确的json,因为firebug面板和fiddler都很好地显示了它

HTTP/1.1 200 OK
Server: ASP.NET Development Server/9.0.0.0
Date: 28 Jun 2011 11:17:04 GMT
X-AspNet-Version: 2.0.50727
X-AspNetMvc-Version: 2.0
Cache-Control: private
Content-Type: application/json; charset=utf-8
Content-Length: 29
Connection: Close

[{"id":"1", "somevar":"hello"}]

这是不正确的

[{“id”:“1”,somevar:“hello”}]

需要

[{“id”:“1”,“somevar”:“hello”}]

JSON需要双引号

值可以是双引号中的字符串、数字、true或false或null、对象或数组。这些结构可以嵌套


摘自:

你能发布有问题的JSON吗?如果你得到一个“解析错误”,一定是有原因的……如果它有帮助,你会将原始输出添加到我的原始帖子中。当AJAX调用完成时,你在警报框中看到了什么?或者它没有发出警报?只是说“error”,虽然我确信有一次我看到了关于“parse error”的内容,但不清楚实际的问题是什么,因为JSON是有效的,并且响应很好……对不起,输入错误,只是从其他机器上复制输入,它确实正确地包含了其他机器上数据的引用。将更新我的帖子。我不知道有jsonlint,我正在构建管道中使用jslint。。。我现在会去那里检查json。。。编辑有效的JSONEDS,因为我们使用JsonP,所以我们必须修改提供信息的服务,以便将返回的数据打包到回调中。由于该服务不支持JsonP(而且似乎没有任何地方告诉您需要服务器支持它),它无法完成请求。