Обнаружение AJAX-запросов на NodeJS с помощью Express
Я использую NodeJS с Express. Как я могу отличить обычный запрос браузера от запроса AJAX? Я знаю, что могу проверить заголовки запросов, но предоставляет ли Node/Exprsss эту информацию?
2 ответа:
большинство фреймворков устанавливают
X-Requested-With
заголовокXMLHttpRequest
, для которого Экспресс-тест:app.get('/path', function(req, res) { var isAjaxRequest = req.xhr; ... });
в случае
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 }
конечно, вам придется немного настроить вторую часть, чтобы соответствовать вашему usecase, но это должен быть более полный ответ.
в идеале угловая команда не должна была его удалять, но должна на самом деле нашли лучшее решение для предполетной проблемы CORS, но теперь это так...