2011-11-09 54 views
5

Tôi có API này được xây dựng với Nodejs-Express:Làm cách nào để cung cấp dịch vụ web cho quyền truy cập nhiều miền?

app.get('/api/v1/:search', function(req, res){ 
     var response = {} 
     res.contentType('application/json'); 
       // process req.params['search'] 
       // build and send response 
       res.send(response, response.status_code); 
      }); 

Tuy nhiên, tôi cần phải thực hiện một khách hàng mà sẽ ngồi trên tên miền khác. Làm cách nào để tôi sửa mã này để mã có thể được gọi thông qua như JQuery $ .ajax, v.v.

Trả lời

13

Something như thế này nên làm việc:

//Middleware: Allows cross-domain requests (CORS) 
var allowCrossDomain = function(req, res, next) { 
    res.header('Access-Control-Allow-Origin', '*'); 
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); 
    res.header('Access-Control-Allow-Headers', 'Content-Type'); 

    next(); 
} 

//App config 
app.configure(function() { 
    app.set('views', __dirname + '/views'); 
    app.set('view engine', 'jade'); 
    app.use(express.bodyParser()); 
    app.use(express.cookieParser()); 
    app.use(express.session({ secret: 'secret' })); 
    app.use(express.methodOverride()); 
    app.use(allowCrossDomain); 
    app.use(app.router); 
    app.use(express.static(__dirname + '/public')); 
}); 
+0

Lưu ý: Trong trường hợp ai đó đang xem nội dung này và không chọn nó, app.use (allowCrossDomain); từ phần // Cấu hình ứng dụng là thành phần quan trọng cho phần ứng dụng của bạn.configure() ... (bạn cũng phải có tất cả mã phần mềm trung gian) – cmcculloh

+0

nhờ bạn đời .. u đã tiết kiệm rất nhiều thời gian của tôi. . – whizcreed

0

This có thể hữu ích cho bạn.

Mặc dù tôi nghĩ rằng JQuery đã bắt đầu hỗ trợ các yêu cầu tên miền chéo bằng cách sử dụng khung nội tuyến ẩn nhưng tôi không chắc chắn.

+0

Tôi thích hack, mát mẻ. Tuy nhiên, tôi cần phải làm cho dịch vụ web có thể truy cập từ tên miền chéo bằng cách sử dụng cách tiêu chuẩn, API sẽ là một API công cộng đó là lý do tại sao. – xybrek

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