Tôi nhận được lỗi JavaScript nàyBất kỳ cách nào để vượt qua Access-Control-Allow-Origin để phát triển trên máy chủ của riêng tôi?
XMLHttpRequest không thể tải http://foo.bar.no/API/map_tools/clean_addresses/check. Xuất xứ http://foo.bar.no:9294 không được cho phép bởi Access-Control-Allow-Origin.
Đây là tất cả trên cùng một tên miền và cùng một máy chủ, nhưng dự án JavaScript của tôi đang được máy chủ độc lập tự động lưu trữ JavaScript và phụ thuộc vào một tệp.
Làm cách nào để vượt qua giới hạn này trong khi tôi đang phát triển?
Tôi đã thử cho phép tập lệnh máy chủ JavaScript của mình kết nối. Đây là kết quả của một curl đến url:
HTTP/1.1 200 OK Date: Wed, 11 Jan 2012 09:05:14 GMT Server: Apache/2.2.16 (Debian) Access-Control-Allow-Origin: http://foo.bar.no:9294 Vary: Accept-Encoding Content-Length: 70 Content-Type: text/plain array(1) { ["q"]=> string(31) "map_tools/clean_addresses/check" }
Và tôi vẫn gặp lỗi chính xác như tôi đã dán ở trên. Tại sao Chrome vẫn từ chối kết nối với URL chết tiệt khi nó rõ ràng được phép !?
Quy tắc xác định vi phạm Access-Control-Allow-Origin' khá nghiêm ngặt: bất kỳ sự khác biệt nào trước dấu gạch chéo đầu tiên, bao gồm cổng, giao thức (HTTP so với HTTPS) và miền phụ, sẽ ngăn chặn một yêu cầu AJAX truyền thống dựa trên XHR ([bài viết tốt] (http://encosia.com/using-cors-to-access-asp-net-services-across-domains/) vi Encosia) –
Vâng tôi cảm nhận được điều đó. Có cách nào tôi có thể đặt trình duyệt của mình vào "Chế độ phát triển" hay thứ gì đó sẽ đóng% ¤ # @ trong khi tôi đang phát triển không? Bất kỳ trình duyệt Windows nào cũng sẽ làm – Hubro
Bạn sẽ sử dụng JSONP hoặc proxy để yêu cầu các url miền khác. Bài báo đề xuất một phương án thay thế bằng cách sử dụng tiêu chuẩn CORS để bỏ qua nó. –