Otrzymujesz proste pole autouzupełniania (jquery ui), które pochodzi z usługi internetowej. Kod jest coś takiego jak poniżej:Żądanie Jquery JSONP otrzymuje odpowiedź 200 z danymi, ale błąd flagi
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);
Patrząc w Fiddler i nawet w panelu firebug Firefox, widzę, że JSON jest prawidłowo zwrócony, a odpowiedź serwera jest 200. Mam nawet sprawdził utworzony jsonp fragment kodu, który zawiera również poprawny JSON. Jednak zawsze trafia w funkcję błędu, a nie sukces.
Próbowałem również użyć pełnego i pobieranie danych z xhr ręcznie, jednak responseText i responseXml są niezdefiniowane. Zawarty błąd mówi o błędzie parsowania, ale wydaje się, że wszystko jest poprawne pod względem syntaktycznym, ponieważ zarówno panel firebug, jak i fiddler wyświetlają go poprawnie.
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"}]
Można zaksięgować JSON w pytaniu? Jeśli pojawia się "błąd analizy", musi istnieć powód ... – Pointy
Dodaje surowe dane wyjściowe do mojego oryginalnego postu, jeśli pomaga – somemvcperson
Co widzisz w oknie alertu po zakończeniu wywołania AJAX? A może nie alarmuje? – MoarCodePlz