【发布时间】:2019-05-21 09:08:23
【问题描述】:
我在 Heroku 上遇到了 CORS 问题。
这是我在服务器上的代码
import express from 'express';
import bodyParser from 'body-parser';
import mongoose from 'mongoose';
require('dotenv').config()
import filmRoutes from './api/routes/films'
import userRoutes from './api/routes/users'
const app = express()
const DBNAME = process.env.DB_USER
const DBPASSWORD = process.env.DB_PASS
mongoose.connect(`mongodb://${DBNAME}:${DBPASSWORD}@ds157422.mlab.com:57422/filmbase`, {useNewUrlParser: true})
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", '*');
res.header("Access-Control-Allow-Credentials", true);
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
res.header("Access-Control-Allow-Headers", 'Origin,X-Requested-With,Content-Type,Accept,content-type,application/json');
next();
});
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
app.use('/films', filmRoutes)
app.use('/users', userRoutes)
export default app;
这是我的发帖请求
CheckLogin = () => {
const data = {
name: this.state.formInput.login.value,
password: this.state.formInput.password.value
}
axios.post('https://whispering-shore-72195.herokuapp.com/users/login', data)
.then(response=>{
console.log(response);
const expirationDate = new Date(new Date().getTime() + response.data.expiresIn * 1000)
localStorage.setItem('token', response.data.token)
localStorage.setItem('expirationDate', expirationDate)
this.context.loginHandler()
})
.catch(err=>{
console.log(err)
})
console.log(data);
}
这是错误
访问 XMLHttpRequest 在 'https://whispering-shore-72195.herokuapp.com/users/login' 来自原点 'https://mighty-citadel-71298.herokuapp.com' 已被 CORS 阻止 政策:没有“Access-Control-Allow-Origin”标头出现在 请求的资源。
我尝试了很多方法,但一无所获……有什么想法吗?
【问题讨论】:
-
响应的 HTTP 状态码是什么。 (使用浏览器开发工具中的网络窗格进行检查。)
-
状态码:503 服务不可用
-
所以是的,那么您没有 CORS 问题 — 而是您遇到了 503 Service Unavailable 问题(其原因与您的 CORS 配置无关)
-
那么有什么问题吗?当我输入错误的值时,状态为 404
标签: javascript node.js express heroku