Ionic项目的相关政策问题[已关闭]

igetnqfo  于 2023-01-10  发布在  Ionic
关注(0)|答案(1)|浏览(152)

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
21小时前关门了。
Improve this question
我的Ionic项目上的CORS策略出现问题。我正在运行Node JS服务器,并且可以在localhost上与它通信。但是,在我的生产服务器上,尝试访问POST或GET方法时出现错误。

Access to XMLHttpRequest at 'http://***-api.el***.app:9890/api/get_auth_SMS' from origin 'http://localhost:8103' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.

这是我的node js服务器上的api-config.js。

var express = require("express");
var app = express();
var path  = require('path');
const mysql = require('mysql');
const jwt = require('jsonwebtoken');
var db = require('./database');
var dbfunc = require('./db-function');
var http  = require('http')
var bodyParser = require('body-parser');
var UserRoute = require('../app/routes/user.route');
var AuthenticRoute = require('../app/routes/authentic.route');
var SecureUserRoute = require('../app/routes/secureUser.route');
var SecureRoute = require('../app/routes/secure.route');
var errorCode = require('../common/error-code')
var errorMessage = require('../common/error-methods')
var isAdmin = require('./secureRoute');
var isUser = require('./secureUserRoute');
var cors = require('cors');

dbfunc.connectionCheck.then((data) =>{
    //console.log(data);
 }).catch((err) => {
     console.log(err);
 });
 
 app.use(function(req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
    res.header('Access-Control-Allow-Headers', 'Content-Type, token, user_id');
  next();
});

app.use(cors());

app.use(bodyParser.json());

var router = express.Router();
app.use('/api',router);
AuthenticRoute.init(router);
// Code below...

我尝试了所有的cors,允许一切。但没有工作。我用axios。
有人能帮我吗?先谢谢你了。

qc6wkl3g

qc6wkl3g1#

由于您使用CORS,因此让cors执行所有设置并删除标头中间件,如果您以后需要使用凭据,则需要指定您想要允许的确切URL:

const corsOptions = {
    origin: 'http://localhost:8103'  // or the right URL
    methods: "GET, POST, PUT, DELETE, OPTIONS, HEAD",
    credentials: true,  // if you will need to use cookie or jwt on cookie
};

app.use(cors(corsOptions));

您可以在文档中阅读有关它的更多详细信息:https://github.com/expressjs/cors#usage

相关问题