Tôi đang sử dụng Ajax để lấy dữ liệu từ twitter bằng API của họ. Tôi đang cố gắng sử dụng jsonp và từ những gì tôi có thể nhìn thấy và hiểu tôi nghĩ rằng tôi đang làm tất cả mọi thứ đúng (rõ ràng là không mặc dù).Lỗi xuất xứ chéo JSONP 'Không có tiêu đề Access-Control-Allow-Origin' hiện diện '
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> </script> <script> $(document).ready(function() { $.ajax({ type: 'GET', datatype: 'jsonp', data: {}, crossDomain: 'true', url: "http://twitter.com/status/user_timeline/padraicb.json?count=10&callback=?", error: function(textStatus, errorThrown) { alert("error"); }, success: function(msg) { console.log(msg); } }); }); </script>
Đoạn mã trên tạo ra một lỗi trong cả Chrome và Firefox XMLHttpRequest không thể tải http://twitter.com/status/user_timeline/padraicb.json?count=10&callback=?. Không có tiêu đề 'Access-Control-Allow-Origin' xuất hiện trên tài nguyên được yêu cầu. Do đó, gốc 'null' không được phép truy cập.
Từ hiểu biết của tôi, tôi nghĩ rằng có &callback=?
và có loại được đặt thành jsonp
sẽ cho phép điều này thành công. Hơn nữa là tôi có thể thấy đối tượng JSON được trả về trong fiddler nó không chỉ được xử lý bởi kịch bản. Tôi đã thử nhiều API với cùng một vấn đề xảy ra.
Một API như vậy cũng hoạt động khi được nhập vào thanh địa chỉ.
Vì vậy, tôi sau khi tìm kiếm và tìm kiếm rộng rãi, tôi có cần một số cách đặt nguồn gốc thành *
không? Tôi nghĩ rằng đây là một vấn đề phía máy chủ?
Tôi cũng đã thử ?callback?
nhưng không có kết quả.
Bất kỳ ý tưởng nào cũng sẽ là lời cảm ơn tuyệt vời.
Các Access-Control-Allow-Origin tiêu đề phải được đặt trên máy chủ. Trong trường hợp này, máy chủ thuộc về Twitter. [Đọc thêm tại đây] (http://stackoverflow.com/questions/10143093/origin-is-not-allowed-by-access-control-allow-origin) –
@Paul Rene Vì vậy, đây không phải là thứ sẽ được cấu hình tự động bởi họ? Là một API công cộng, tôi nghĩ rằng điều này sẽ được xử lý bởi họ? – Corey
@Corey Đó là theo thiết kế. Họ không muốn các yêu cầu chưa được xác thực đối với API của họ nữa. Họ muốn bạn sử dụng khóa API và máy chủ để thực hiện yêu cầu. – Munim