2009-07-29 19 views

Trả lời

11

của nó vì sự hạn chế về yêu cầu miền chéo thực hiện trong trình duyệt cho XMLHttpRequests. Bạn có thể giải quyết vấn đề này bằng cách sử dụng JSONP làm định dạng, nếu không bạn sẽ cần proxy phía máy chủ cho yêu cầu.

Trích dẫn từ ajax documentation trên http://jquery.com

Lưu ý: Tất cả các yêu cầu từ xa (không trên cùng một miền ) nên được chỉ định như GET khi 'kịch bản' hoặc 'jsonp' là datatype (vì nó tải tập lệnh bằng cách sử dụng thẻ tập lệnh DOM). Các tùy chọn Ajax yêu cầu đối tượng XMLHttpRequest không có sẵn cho các yêu cầu này. Các chức năng đầy đủ và thành công là được gọi là hoàn thành, nhưng không nhận được đối tượng XHR; beforeSend và chức năng dataFilter không được gọi là .

0

Bởi vì nếu Same xứ Chính sách jQuery sẽ không cho phép điều này. Tùy chọn tốt nhất sẽ sử dụng một số trang máy chủ proxy để nhận các trang được yêu cầu.

6

Như http://en.wikipedia.org/wiki/Cross-origin_resource_sharing nói:

giữa các gốc chia sẻ tài nguyên (CORS) là một cơ chế cho phép một trang web để làm cho XMLHttpRequests đến tên miền khác. 1 Các yêu cầu "tên miền chéo" như vậy sẽ bị cấm bởi trình duyệt web, theo cùng chính sách bảo mật gốc. CORS định nghĩa cách thức mà trình duyệt và máy chủ có thể tương tác để xác định có hay không cho phép yêu cầu xuất xứ chéo. 2 Nó mạnh hơn chỉ cho phép các yêu cầu cùng xuất xứ, nhưng nó an toàn hơn là chỉ cho phép tất cả các yêu cầu có nguồn gốc chéo như vậy.

Đối với PHP nó được thực hiện bằng header() chức năng:

<?php 
header("Access-Control-Allow-Origin: http://example.com"); 
?> 

CORS có thể được sử dụng như là một thay thế hiện đại để mô hình JSONP. Trong khi JSONP chỉ hỗ trợ phương thức yêu cầu GET, CORS cũng hỗ trợ các loại yêu cầu HTTP khác . Sử dụng CORS cho phép một lập trình viên web sử dụng XMLHttpRequest thông thường, hỗ trợ xử lý lỗi tốt hơn so với JSONP. Mặt khác, JSONP hoạt động trên các trình duyệt cũ mà loại trừ hỗ trợ CORS.CORS được hỗ trợ bởi hầu hết các trình duyệt web hiện đại. Ngoài ra, trong khi JSONP có thể gây ra các vấn đề XSS khi trang web bên ngoài bị xâm nhập , CORS cho phép các trang web phân tích cú pháp theo cách thủ công thành đảm bảo bảo mật.

JSONP hoặc "JSON có đệm" là kỹ thuật giao tiếp được sử dụng trong JavaScript. Nó cung cấp một phương thức để yêu cầu dữ liệu từ một máy chủ trong một tên miền khác nhau , một cái gì đó bị cấm bởi các trình duyệt web điển hình vì của cùng một chính sách gốc.

Các vấn đề liên quan