Có một hộp tự động hoàn tất đơn giản (jquery ui) lấy nguồn của nó từ một dịch vụ web. Mã này là một cái gì đó như dưới đây:Yêu cầu JSONP của Jquery nhận được 200 phản hồi với dữ liệu nhưng lỗi cờ
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);
Nhìn trong cáy và thậm chí trong bảng điều khiển firebug Firefox, tôi có thể thấy rằng JSON được trả lại một cách chính xác, và phản ứng máy chủ là một 200. Tôi thậm chí còn kiểm tra các jsonp tạo đoạn mã, cũng chứa JSON chính xác. Tuy nhiên nó luôn luôn nhấn chức năng lỗi không phải là thành công.
Tôi cũng đã thử sử dụng hoàn chỉnh và nhận dữ liệu từ xhr theo cách thủ công, tuy nhiên responseText và responseXml đều không xác định. Lỗi có chứa lỗi phân tích cú pháp, nhưng tất cả dường như là cú pháp chính xác json, vì bảng điều khiển firebug và fiddler đều hiển thị tốt.
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"}]
Bạn có thể gửi JSON trong câu hỏi? Nếu bạn nhận được "lỗi phân tích cú pháp", phải có lý do ... – Pointy
Sẽ thêm đầu ra thô vào bài đăng gốc nếu nó giúp – somemvcperson
Bạn thấy gì trong hộp cảnh báo khi cuộc gọi AJAX hoàn tất? Hay là nó không cảnh báo? – MoarCodePlz