Tại sao jQuery.ajax() ném một lỗi không có thông báo lỗi nếu bạn sử dụng URL có máy chủ dfferent?jQuery.ajax không thành công khi url đến từ máy chủ khác nhau
Trả lời
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à .
Tôi tin rằng bạn sẽ tìm thấy điều này hữu ích:
http://jquery-howto.blogspot.com/2009/04/cross-domain-ajax-querying-with-jquery.html
Phương thức ajax() sử dụng nội bộ XmlHttpRequest tuân theo cùng chính sách miền http://en.wikipedia.org/wiki/Same_origin_policy. Phương pháp getJson() có thể được sử dụng để thực hiện cuộc gọi tên miền chéo.
Tôi hy vọng điều này sẽ giúp, Bogdan
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.
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.
không jQuery plugin này sẽ làm một request.It gốc chéo cơ bản được AJAX.But hoạt động rất tương tự như AJAX
- 1. SSH đến máy chủ Openshift không thành công
- 2. Đi đến url khác nhau khi nhấp vào nút
- 3. Chuyển hướng URL từ máy chủ ADFS
- 4. Có sai khi di chuyển kho từ máy chủ 1.5 đến 1.7 máy chủ không?
- 5. Tải hình ảnh từ URL/máy chủ
- 6. curl www.google.com công trình khác nhau khi url được gọi từ trình duyệt trực tiếp
- 7. Http Yêu cầu không thành công từ mã ASP.NET trên máy chủ Kiểm tra (cũng không thành công từ IE ... nhưng không phải là firefox !?)
- 8. Ngừng sử dụng thành công Tham số trong jQuery.ajax?
- 9. Gọi điện thoại đến máy chủ HTTPS với chứng chỉ tự ký không thành công
- 10. Eclipse Subversive "Kết nối không thành công bởi máy chủ"
- 11. Di chuyển thư mục từ Máy tính đến máy chủ?
- 12. Tên miền phụ trên máy chủ khác nhau
- 13. MSDeploy không thành công với "kết nối hiện có bị đóng bởi máy chủ từ xa"
- 14. Xác minh khóa máy chủ không thành công
- 15. Cảnh báo "không đúng ngữ cảnh" khi tải JSON phía máy khách trong Firefox qua jQuery.ajax
- 16. Đọc từ máy chủ không thành công khi cố gắng kết nối với sql-azure từ tsql
- 17. svn: TÙY CHỌN 'URL REPO: ủy quyền không thành công:
- 18. Cuộc gọi jQuery.ajax không thành công trong phần mở rộng của Chrome
- 19. Gửi AJAX đến máy chủ trước khi tải
- 20. gửi email từ google không thành công trên máy chủ sản xuất nhưng công trình ok từ localhost
- 21. Truyền video từ máy ảnh Android đến máy chủ
- 22. Kết nối với máy chủ mssql từ máy từ xa cho phép Đăng nhập không thành công cho người dùng ''
- 23. Lỗi khi thực hiện kết nối SSL từ máy khách Java đến máy chủ .NET
- 24. Chức năng thành công AJAX trên máy chủ
- 25. Khởi động máy chủ PostgreSQL không thành công sau khi sửa đổi postgresql.conf bằng lệnh sudo
- 26. DateTime vấn đề khi nền văn hóa toàn cầu của máy chủ là khác nhau trên các máy chủ khác nhau
- 27. Kết nối với SQL-Azure với lỗi freeTDS: Đọc từ máy chủ không thành công
- 28. jQuery.ajax() callbacks thành công/thất bại được gọi là khi nào?
- 29. Gửi tệp từ máy khách đến máy chủ bằng XMLRPC?
- 30. Cookie JQuery jsession không được gửi đến máy chủ
Nếu truy cập có sẵn để xử lý phía máy chủ, sau đó tại sao jQuery thậm chí cần phải xử lý cuộc gọi đến một tên miền khác, nó sẽ chỉ được xử lý trong mã phía máy chủ và được chuyển đến trang. – stephenbayer