有一個簡單的自動完成框(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