有一个简单的自动完成框(jQuery UI),它从Web服务获取其源。该代码是类似下面的东西:Jquery JSONP请求获取200响应数据,但标志错误
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);
在小提琴手,甚至在Firefox的萤火虫面板来看,我可以看到,JSON返回正确,服务器的响应是200。我甚至已经检查了创建JSONP脚本片段,其中也包含正确的JSON。但它总是碰到错误功能而不是成功的。
我也尝试过使用complete,并从xhr手动获取数据,但是responseText和responseXml都是未定义的。包含的错误说解析错误,但它似乎在语法上是正确的JSON,因为萤火虫面板和提琴手都显示它很好。
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"}]
你能在问题发布JSON?如果你得到一个“解析错误”,必须有一个原因... – Pointy
如果它有帮助,将原始输出添加到我的原始帖子 – somemvcperson
当AJAX呼叫完成时,你在警告框中看到什么?还是不警觉? – MoarCodePlz