Một số dịch vụ dữ liệu JSON trên Internet được thiết kế để chỉ được các máy chủ sử dụng và bỏ bê khả năng bị ứng dụng chỉ dùng trên web trực tiếp sử dụng.Tôi làm cách nào để sử dụng JSON trên trang web từ một nguồn không có cả CORS lẫn JSONP?
Do mối quan ngại giữa các trang, các dịch vụ đó sẽ hoạt động nếu chúng cung cấp định dạng JSONP
hoặc bật hỗ trợ CORS
.
Tôi muốn tạo một công cụ JavaScript nhỏ có thể gọi một tài nguyên trực tuyến chỉ trả lại JSON
và không, và không hỗ trợ.
Một trường hợp mẫu là một ứng dụng một trang mà tôi đã thực hiện mà nguồn dữ liệu duy nhất tôi có thể tìm thấy không cung cấp CORS
hoặc JSONP
. Là một ứng dụng một trang, nó không có máy chủ riêng của mình nên phải tuân thủ chính sách cùng nguồn gốc.
Chiến lược nào có sẵn trong các trường hợp như vậy?
Làm thế nào sẽ có việc làm? Bạn đang vi phạm chính sách có cùng nguồn gốc và cuộc gọi sẽ không thành công. Bạn sẽ không cần phải thực hiện một số loại gọi hàm JSONP đến YQL? –
Không hề vì YQL hỗ trợ ['CORS'] (http://en.wikipedia.org/wiki/Cross-origin_resource_sharing), đây là một giải pháp thay thế tốt hơn nhiều so với JSONP vì nó sử dụng cùng giao diện XHR thay vì kịch bản- phương pháp tiêm có một số nhược điểm. YQL cũng hỗ trợ JSONP nếu bạn cần nó. Tôi sẽ cập nhật câu trả lời của mình. – hippietrail
Nếu bạn thực sự muốn JSONP, bạn có thể truyền tham số 'callback' cũng như' format: 'json''. – hippietrail