登录问题

来源:8-4 路由和权限校验原理讲解(上)

qq_习惯就好_21

2020-05-20

我的后台接口是用.net core写的 前端请求的时候 老是提示不能在预请求之前重定向 请问是什么原因导致的

写回答

3回答

扬_灵

2020-05-21

同学你好,这个报错是预检请求OPTIONS请求中不允许出现重定向,出现这个问题的原因是因为我们在node的项目中使用了cors插件对请求源做了设置,允许所有的域名可以访问,你在这边请求时没有做跨域处理。你可以试一下cors插件或者使用下面的代码做跨域的处理

//设置跨域访问  
app.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
res.header("X-Powered-By",' 3.2.1')
res.header("Content-Type", "application/json;charset=utf-8");
next();
});

跨域资源共享(CORS),当前端向后台获取接口时,浏览器会将CORS分成两种请求,一种是简单请求即请求方式为get,post,方式的请求,这时浏览器会在请求时会向内部添加一个origin里面包含了请求的源地址信息。另外一种就是非简单模式,即请求方式为put,delete或者Content-Typ的类型为application/json时,浏览器会先向服务器发送一个预检请求,判断浏览器是否设置了该源地址允许访问,如果没有设置允许访问就回报错。如果设置了允许访问就会发送请求。 

关于CORS的详细介绍你可以去看一下阮一峰的《跨域资源共享CORS详解》http://www.ruanyifeng.com/blog/2016/04/cors.html 如果不能解决你的问题,可以继续追问。


0
1
qq_习惯就好_21
我这边是做了跨域处理的 .net core API程序 启动有两个端口 我配置的5000 但是Vue请求的时候就自动从5000转到5001去了 现在改成5001就没问题了
2020-05-21
共1条回复

qq_习惯就好_21

提问者

2020-05-20


//img.mukewang.com/szimg/5ec511960905de8907710282.jpg无法进入到response里面   错误信息

Access to XMLHttpRequest at 'http://localhost:5000/Login/Login' from origin 'http://localhost:9527' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.

0
0

扬_灵

2020-05-20

同学你好,麻烦报错截图发一下,这样好根据具体错误信息来定位问题。

0
0

Vue Element+Node.js开发企业通用管理后台系统

基于Element的中后台课程,一套中小型企业通用的后台管理系统

2829 学习 · 1716 问题

查看课程