XMLHttpRequest không thể tải http://localhost:8080/api/test. Nguồn http://localhost:3000 không được Access-Control-Allow-Origin cho phép.
Tôi đã đọc về các yêu cầu ajax của nhiều miền và tìm hiểu về các vấn đề bảo mật tiềm ẩn. Trong trường hợp của tôi, tôi có 2 máy chủ chạy cục bộ và muốn kích hoạt các yêu cầu có nguồn gốc chéo trong quá trình thử nghiệm.
localhost:8080 - Máy chủ phát triển Google Appengine
localhost:3000 - Máy chủ Node.js
Khi trang của tôi tải từ máy chủ Node, tôi đang gửi localhost:8080 - máy chủ GAE
Thực hiện một yêu cầu ajax. Cách đơn giản và an toàn nhất (không muốn dùng vô hiệu hóa bảo mật web
tùy chọn để khởi động chrome). nếu tôi phải thay đổi 'Loại nội dung'
, tôi có nên làm điều đó trên máy chủ Node không? Thế còn nó thì sao?
Vì chúng chạy trên các cổng khác nhau nên chúng là các JavaScript khác nhau nguồn gốc
. Việc chúng ở trên cùng một máy/tên máy chủ không thành vấn đề.
Bạn cần kích hoạt CORS trên máy chủ (localhost:8080). Kiểm tra trang web này:http://enable-cors.org/
Tất cả những gì bạn cần làm là thêm tiêu đề HTTP vào máy chủ:
Kiểm soát truy cập-Cho phép-Nguồn gốc: http://localhost:3000
Hoặc, để giữ mọi thứ đơn giản:
Kiểm soát truy cập-Cho phép-Nguồn gốc: *
Nếu máy chủ của bạn cố gắng đặt cookie và bạn sử dụng withCredentials = đúng
, vui lòng không sử dụng "*"
khi phản hồi yêu cầu được xác thực, máy chủ phải chỉ định tên miền và không thể sử dụng ký tự đại diện.
Bạn có thể đọc thêm về vớiChứng chỉ
đây
Tôi là một lập trình viên xuất sắc, rất giỏi!