私はlocaltunnelを経由してパブリックにホストされ、localhostノードアプリケーションからAPIにアクセスしようとしているラズベリーパイサーバーに休憩APIを持っています。ローカルノードアプリケーションはエクスプレスで動作し、いくつかの静的なJSファイルを持っています。静的なJSファイルのいずれかから、私は、APIを休めるためにaxiosのAJAX要求を行うが、コンソールにCORSエラーを取得しています:CORSミドルウェアは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});
私は私の急行ファイルapp.jsにCORSモジュールを含みます:
var cors = require("cors");
app.use(cors());
エンドポイントに別のサーバー上の私のREST APIのルートファイル:
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);
})
});
コンソールエラー:
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.
チュートリアルの後には、それは男のために働くが、私はそうではない。ここで私は何が欠けているのですか?ローカルノードアプリケーションだけでなく、REST APIルートにもCORSミドルウェアを含める必要がありますか?
エラーが表示されますか?あなたのルートはどのように見えますか?質問のための十分な情報を投稿し、[最小で完全で検証可能な例](https://stackoverflow.com/help/mcve)を含める必要があります。 – LMulvey
@LMulvey - FYI:オープンブラケット、mcve、クローズブラケット= [mcve] – Quentin
ありがとう、@クエンティン。私は投稿した直後にそれを捕まえた。朝のコーヒーの前に質問に答えるべきではありません。 – LMulvey