Как сделать веб-сервис доступным для междоменного доступа? - PullRequest
5 голосов
/ 09 ноября 2011

У меня есть этот API, созданный с помощью Nodejs-Express:

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);
          });

Однако мне нужно создать клиент, который будет работать в другом домене.Как исправить этот код, чтобы его можно было вызывать, например, через JQuery $ .ajax и т. Д.

Ответы [ 2 ]

13 голосов
/ 09 ноября 2011

Примерно так должно работать:

//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 голосов
/ 09 ноября 2011

Это может быть полезно для вас.

Хотя я думаю, что JQuery уже начал поддерживать междоменные запросы с использованием скрытых фреймов, но я не уверен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...