Thiết output
để jsonp
công trình đối với tôi.
Xem example query cho cấu trúc của đầu ra.
Giải thích bên dưới.
Mã số là HERE.
$("#wd6450").autocomplete({
source: function(request, response) {
$.ajax({
url: "http://ff.search.yahoo.com/gossip",
dataType: "jsonp",
data: {
"output": "jsonp",
"command": request.term
},
success: function(data) {
var suggestions = [];
// for each element in the data.gossip.results array ...
$.each(data.gossip.results, function(i, val) {
// .. push the value of the key inside our array
suggestions.push(val.key);
});
// call response with our collected values
response(suggestions);
}
});
}
});
Giải thích:
Bằng cách sử dụng dataType: "jsonp"
jQuery hy vọng định dạng đầu ra được trong JSONP. Khi bạn thực hiện cuộc gọi từ mã của mình bằng cách sử dụng output: "fxjson"
URL trông giống như this nhưng như bạn có thể thấy đầu ra không phải là JSONP hợp lệ, vì cuộc gọi lại không được gọi.
Mặt khác khi bạn chỉ định output: "jsonp"
truy vấn trông giống như this và như bạn có thể nhìn thấy đầu ra là một JSONP hợp lệ - callback được gọi.
Bạn đã liên kết một ví dụ của Amazon trong các nhận xét. $.ajax()
cuộc gọi sẽ cố gắng URL như this. Đầu ra từ webservice của Amazon là JSONP hợp lệ, bởi vì gọi lại được gọi với tất cả dữ liệu.
Vì vậy, kết quả là: Yahoo webservices sẽ trả về định dạng trong JSONP nếu bạn cung cấp thông số ?output=jsonp
trong URL bằng cách định cấu hình $.ajax()
với output: "jsonp"
. Dịch vụ web của Amazon trả về định dạng này theo mặc định mà không có bất kỳ tham số bổ sung nào. Đây là cấu hình webservice cụ thể và phải được tư vấn với tài liệu của nó hoặc các resourcers có liên quan khác.
Thông tin về JSONP có sẵn HERE.
wow, trông giống như một lỗi. – noob