Ich habe meine Ruhe api auf Raspberry Pi-Server gehostet über Localtunnel zu öffentlichen und versuchen, die API von localhost Knoten-Anwendung zugreifen. Lokale Knotenanwendung läuft auf Express und hat einige statische JS-Dateien. Von einem der statischen JS-Dateien, ich bin axios Ajax-Request tun api aber immer CORS Fehler zur Ruhe zu trösten:CORS Middleware funktioniert nicht in NodeJS
script.js
setTimeout(() => {
axios.get('https://wvoegmuism.localtunnel.me/api/ninjas')
.then(function (question) {
var data = question.data;
const questions = [];
$.each(data, function(index, value) {
console.log(JSON.stringify(value.the_question, null, "\t"))
console.log(JSON.stringify(value.the_answer, null, "\t"))
console.log(JSON.stringify(value.the_choices, null, "\t"))
questions.push(new Question(value.the_question, value.the_choices, value.the_answer))
//console.log(data[index].the_question);
})
quiz = new Quiz(questions)
populate()
}), 1000});
I der CORS-Modul meiner ausdrücklichen Datei app.js :
var cors = require("cors");
app.use(cors());
zum Endpunkt auf einem anderen Server Meine Rest Datei api Route:
var express = require("express");
var app = express();
var router = express.Router();
var mongoose = require("mongoose");
var customerschema = require("../models/customersSchema");
var jwt = require('jsonwebtoken'); // used to create, sign, and verify tokens
var config = require('../config'); // get our config file
var user = require("../models/user");
var bodyParser = require("body-parser");
app.use(bodyParser.json());
app.set('superSecret', "tokenproject"); // secret variable
mongoose.Promise = require('bluebird');
router.get('/ninjas', function(req, res) {
customerschema.find({}).then(function(ninjas) {
res.send(ninjas);
})
});
Konsolenfehler:
Failed to load https://wvoegmuism.localtunnel.me/api/ninjas: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
Beim folgenden Tutorial funktioniert es für einen Kerl, aber nicht ich. Was ich hier vermisse? Sollte ich CORS-Middleware nicht nur in meine lokale Knoten-App, sondern auch in REST-API-Routen aufnehmen?
Erhalte ich einen Fehler? Wie sieht deine Route aus? Sie müssen sicherstellen, dass Sie genügend Informationen für die Frage bereitstellen und ein [minimales, vollständiges und überprüfbares Beispiel] (https://stackoverflow.com/help/mcve) einfügen. – LMulvey
@LMulvey - FYI: Öffne eckige Klammer, mcve, schließe eckige Klammer = [mcve] – Quentin
Danke, @Quentin. Ich habe es direkt nach der Veröffentlichung bemerkt. Ich sollte keine Fragen vor meinem Morgenkaffee beantworten. – LMulvey