Ich mache eine PATCH Anfrage von einem Client auf localhost läuft: 3000 mit dem folgenden Code:Kann nicht erreichen CORS mit Express.js
axios.patch(
"http://localhost:3090/v1/users/etc/etc/etc", {
name,
url,
}, {
headers: {
authorization: AUTH_TOKEN()
}
}
)
an einen Server wie folgt konfiguriert:
var app = express();
var cors = require('cors');
//etc
//var whitelist = [
// 'http://localhost:3000',
// 'localhost:3000'
//];
//passing this to cors() doesn't help
//var globalCorsOptions = {
// origin: function(origin, callback) {
// callback(null, whitelist.indexOf(origin) !== -1);
// }
//};
app.use(morgan('combined'));
app.use(cors());
app.options('*', cors());
app.use(bodyParser.json({type:'*/*'}));
app.use('/v1', router);
var port = process.env.PORT || 3090;
var ip = process.env.IP || 'localhost';
var server = http.createServer(app);
server.listen(port, ip);
Aber die Anfrage hängt einfach. Ich kann POST/GET gut machen, aber nicht DELETE/PATCH. Das Preflight passiert gut, aber die eigentliche Anfrage folgt einfach "aufgehalten" auf unbestimmte Zeit. Hier ist der Header für jede Anforderung:
Leider diese ziemlich Standard Frage zu stellen, aber ich habe alles versucht.
EDIT: Added der an den Router folgenden (noch nicht funktioniert):
var router = express.Router();
router.use(function(req, res, next) {
res.header("Access-Control-Allow-Headers", "PATCH,DELETE,OPTIONS,GET,POST");
next();
});
Ich glaube nicht, dass "Verbindung abgelehnt" etwas mit CORS zu tun hat. – robertklep
Ja. Das Problem, das Sie sehen, hängt nicht damit zusammen, dass CORS aktiviert ist. Wenn CORS das Problem war, würde der Chrome-Fehler das sagen. –
Ja, ich stimme zu. Benutzt du Fiddler? – Legends