Я реализовал Nodejs REST API для моего сайта и использую Reactjs для веб-сайтов и React Native для мобильных приложений. Я реализовал CORS, используя следующий код:
app.options('/*', (_req, res) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE, OPTIONS');
res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Endpoint, Token');
res.sendStatus(200);
});
Это хорошо для мобильного приложения, но теперь, когда я внедрил Интернет, мне нужно добавить промежуточное оборудование, включающее CORS для каждого метода запроса, например, так :
app.get('/*', (_req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE, OPTIONS');
res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Endpoint, Token');
next();
});
Браузер выдаст исключение, если я не сделаю, как указано выше. Я знал о предварительном запросе OPTIONS и поэтому добавил промежуточное программное обеспечение, включающее CORS, но теперь, поскольку мне нужно добавить промежуточное программное обеспечение для методов последующих запросов, я не могу найти никакого объяснения, почему предыдущий подход остановился работает по запросам после предполетного полета. Я не проверял мобильное приложение, но могу сказать, что заголовки запросов такие же, как и в предыдущем. Кто-нибудь может объяснить, что происходит?