Подтвердить что ты не робот

Обнаружение запросов AJAX в NodeJS с помощью Express

Я использую NodeJS с Express. Как я могу объяснить разницу между обычным запросом браузера и запросом AJAX? Я знаю, что могу проверить заголовки запросов, но Node/Exprsss выставлять эту информацию?

4b9b3361

Ответ 1

Большинство фреймворков устанавливают заголовок X-Requested-With на XMLHttpRequest, для которого Express имеет тест:

app.get('/path', function(req, res) {
  var isAjaxRequest = req.xhr;
  ...
});

Ответ 2

В случае, если req.xhr не установлен, скажем, в таких рамках, как Angularjs, где он был удален, тогда вы также должны проверить, заголовок может принимать ответ JSON (или XML или любой другой XHR, отправляемый как ответ вместо HTML).

if (req.xhr || req.headers.accept.indexOf('json') > -1) {
  // send your xhr response here
} else {
  // send your normal response here
}

Конечно, вам придется немного подкорректировать вторую часть, чтобы соответствовать вашему пользователю, но это должен быть более полный ответ.

В идеале команда angular не должна была удалять ее, но должна была найти лучшее решение для предполетной проблемы CORS, но теперь, как она покоится...