Tôi đang phát triển một ứng dụng trên máy tính cục bộ của mình. Giao diện người dùng phải được xây dựng với spinejs và backend-api với node.js. cột sống đang chạy trên cổng 9294 và Node.js đang chạy trên cổng 3000. trong cột sống tôi đã thêm vào mô hình của tôi như sau:cột sống, node.js (express) và Access-Control-Allow-Origin
@url: "http:localhost:3000/posts"
và trong máy chủ nhanh của tôi
app.get('/posts', function(req, res){
console.log("giving ALL the posts");
res.header("Access-Control-Allow-Origin", "*")
res.json(posts);
});
Nhưng Tôi luôn nhận được thông báo lỗi sau trong chrome:
XMLHttpRequest cannot load http://localhost:3000/posts. Origin http://localhost:9294 is not allowed by Access-Control-Allow-Origin.
Tôi phải làm gì để có thể truy cập api đúng cách? Tôi mặc dù thêm tiêu đề trong các phản hồi sẽ khắc phục được sự cố.
Bạn đã kiểm tra tiêu đề phản hồi để xác nhận rằng tiêu đề thực sự đang được đặt chưa? Ngoài ra, jQuery sử dụng lệnh 'OPTIONS' HTTP để phát hiện trước auth; chắc chắn rằng Express cũng đang phản hồi với HTTP Verb đó cũng như là – tkone
một cách trung thực dường như yêu cầu của tôi không bao giờ đến được máy chủ node.js của tôi. Tôi đã thêm một câu lệnh debug trong app.get() TRƯỚC KHI bất cứ thứ gì được gửi đến máy khách. Khi truy cập api của tôi trực tiếp qua url, tôi có thể nhìn thấy câu lệnh nhưng không phải khi truy cập qua cột sống – soupdiver
YOu nên sử dụng thứ gì đó như charles để đảm bảo điều này đang diễn ra. Chúng tôi làm một tấn công cụ miền x ở đây và nó bực bội cho đến khi bạn thấy rằng tiêu đề KHÔNG được đặt. – tkone