Я использую Express. js с промежуточным ПО CORS. Я получаю очень странное поведение на Firefox v73.0.1 (64-разрядной)
Очистить firefox профиль ... так что ничего не кэшируется.
- Я пытаюсь прямой запрос к http://localhost/search?q=AMZN, я получаю результаты, как и ожидалось.
- Я открываю свое веб-приложение, которое работает на localhost: 3000. Все эти запросы не используют TLS / SSL.
- Я получаю «Заблокирован перекрестный запрос: одна и та же политика происхождения запрещает чтение удаленного ресурса на http://localhost/search?q=AMZN. (Причина: CORS просьба не удалась). когда он пытается связаться с серверным сервером API.
- Я ссылаюсь sh на другую вкладку, где у меня был прямой доступ к localhost (тот же запрос, который был выполнен ранее), и я получаю «сброс соединения».
Chrome не делает этого ...
Я смотрю на Wireshark и Firefox просто отправляет запрос GET (несколько из них? Почему ?? I ' я только делаю один), отправляет заголовки и тому подобное, затем следует сброс соединения.
Похоже, что узел делает что-то не так? Или я не знаю.
const express = require('express');
const fetch = require('node-fetch');
const util = require('util');
const app = express();
const port = 80;
var cors = require('cors')
var copts = {
origin: function (origin, callback) {
console.log('yeah');
// allow all
callback(null, true);
}
}
const SEARCH_URL = 'https://api.stocktwits.com/api/2/streams/symbol/%s.json';
app.get('/search', cors(copts), (req, res) => {
Часть "да" никогда не затрагивается.
Очень простой клиентский код.
return fetch(BACKEND_URL + uri).then(response => {
Попытался удалить промежуточное ПО CORS и добавил эти заголовки, основанные на изучении кросс-браузерного запроса-ответа github в chrome
res.header('Access-Control-Allow-Methods', 'GET');
res.header('Access-Control-Max-Age', '3600');
res.header('Vary', 'Origin, Access-Control-Request-Headers, Access-Control-Request-Method, Accept-Encoding');
res.header('Access-Control-Allow-Origin', '*');
У меня не было обработчика обработанных опций, так что, возможно, это не имело значения. Я нашел эти заголовки в ответе GET.