首页 新闻 会员 周边

前后端分离问题

0
悬赏园豆:5 [待解决问题]

Access to XMLHttpRequest at 'https://192.168.0.67/mst-web/pc/sys/login' from origin 'http://127.0.0.1:8848' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
mui type= 'abort'

茄子鱼的主页 茄子鱼 | 菜鸟二级 | 园豆:202
提问于:2020-05-07 10:56
< >
分享
所有回答(5)
0

跨域請求
回應方須帶"Access-Control-Allow-Origin" HttpHeader
告知瀏覽器這次請求是被允許的

RosonJ | 园豆:4910 (老鸟四级) | 2020-05-07 11:00

后台设置了过滤器,加了response.setHeader("Access-Control-Allow-Origin", "*");
不知道前台需要做什么操作

支持(0) 反对(0) 茄子鱼 | 园豆:202 (菜鸟二级) | 2020-05-07 11:03

@茄子鱼:
開瀏覽器的開發者工具看看
看起來的header沒有成功加上
至少瀏覽器無法正確辨識

支持(1) 反对(0) RosonJ | 园豆:4910 (老鸟四级) | 2020-05-07 11:05

@RosonJ: 有一个vue的前端项目是能正常访问后台的,然后我重新开了一个mui项目用mui.js和jQuery.js的ajax请求没有成功。可能还和mui有点关系

支持(0) 反对(0) 茄子鱼 | 园豆:202 (菜鸟二级) | 2020-05-07 11:14

@茄子鱼:
沒用過mui
但看網上資料提到不能對localhost及127.0.0.1發送請求(不確定真偽)
可以嘗試朝這個方向調整

支持(0) 反对(0) RosonJ | 园豆:4910 (老鸟四级) | 2020-05-07 11:19

@茄子鱼:
另外,https頁面對http發送請求這點也有點微妙

支持(0) 反对(0) RosonJ | 园豆:4910 (老鸟四级) | 2020-05-07 11:22
0

1.首先,看一下你的浏览器在发送请求之前是否发了OPTIONS请求。
2.再查看OPTIONS请求的结果,是否带了Access-Control-Allow-Origin。(如果没有,那么后端设置失败了。)
3.判断上面的Access-Control-Allow-Origin是否包含了你的这个域。

随风行云 | 园豆:936 (小虾三级) | 2020-05-07 11:14

看到你上面说了https頁面對http發送請求,这个操作在一些浏览器是非法的行为,是会直接拦截请求的,因为会判断为不安全的操作。

支持(0) 反对(0) 随风行云 | 园豆:936 (小虾三级) | 2020-05-07 11:24

@随风行云: 可是在登录之前有一个验证码图片的获取,也是在那个192.168.0.67的https请求是没有问题的。

支持(0) 反对(0) 茄子鱼 | 园豆:202 (菜鸟二级) | 2020-05-07 11:27

@茄子鱼: 我之前没有在本地的HTTPS的IP实验过发HTTP请求,但如果你向一个外网HTTPS发一个外网的HTTP请求的话那么是会失败的,我之前做手机端发请求的时候遇到过。

支持(0) 反对(0) 随风行云 | 园豆:936 (小虾三级) | 2020-05-07 11:33

@随风行云: 我运行vue项目前端也是本机的localhost地址,请求的192.168.0.67也是https并没有报错啊。mui项目就报这个错,所以前端做什么设置应该是能解决的吧

支持(0) 反对(0) 茄子鱼 | 园豆:202 (菜鸟二级) | 2020-05-07 12:30
0

你的错误日志中有CORS 关键字,你前后端分离有跨域问题,
解决方式
1.前端和后端都加一下白名单
2.用jsonp进行数据传输

小小咸鱼YwY | 园豆:3210 (老鸟四级) | 2020-05-07 14:15

1、加白名单是什么意思
2、jsonp不是只能get方式请求吗

支持(0) 反对(0) 茄子鱼 | 园豆:202 (菜鸟二级) | 2020-05-07 15:11

@茄子鱼:
1.就是你前端ip+端开加载后端白名单里,后端的ip和端口加你前端的白名单里,一般情况下后端加了前端不用
.2.jsonp和get请求没关系只是一直传输数据的格式

支持(0) 反对(0) 小小咸鱼YwY | 园豆:3210 (老鸟四级) | 2020-05-07 15:22

@茄子鱼: 你这个明显是跨域问题,解决起来很简单的,前端是什么框架vue?后端是java?,你和后端直接沟通就好了,把你前端部署的ip+端口告诉后端问下他们有没有加白名单,没加加下

支持(0) 反对(0) 小小咸鱼YwY | 园豆:3210 (老鸟四级) | 2020-05-07 15:26

@小小咸鱼YwY: 现在就是服务器上有发布好的前后台,然后我用本地前台vue项目运行,直接连接服务器的后台没有任何问题。然后我重新开了一个mui前端项目,用服务器的后台就不行。这个应该和前端有关系。然后我用后台代码,在自己电脑上后台运行起来(apache),用自己电脑上vue项目把地址换成本机的后台也是不行。后者可能又和我后台运行方式有关系。后台是不是要用nginx运行。后台请假了···

支持(0) 反对(0) 茄子鱼 | 园豆:202 (菜鸟二级) | 2020-05-07 15:34

@茄子鱼: 你本地测试后端那边终端显示什么,返回code是多少

支持(0) 反对(0) 小小咸鱼YwY | 园豆:3210 (老鸟四级) | 2020-05-07 15:55

@茄子鱼: 你直接点我博客吧,点QQ联系问吧,你这个解决起来不难,后端是什么语言什么框架,vue设置跨域是

//前提你要确认是你这边跨域问题,还是后端跨域问题
proxyTable:{
    '/': {
            target: 'http://www.xxx.cn/api', //你要访问的服务器域名
            changeOrigin: true, //允许跨域
            pathRewrite: {
                '^/': ''
            }
        }
}
支持(0) 反对(0) 小小咸鱼YwY | 园豆:3210 (老鸟四级) | 2020-05-07 15:59

@茄子鱼: 你本地测试可以直接F12看页面里面network里面发起请求,接受请求一些参数对不对

支持(0) 反对(0) 小小咸鱼YwY | 园豆:3210 (老鸟四级) | 2020-05-07 16:10
0

前台不用设置,请问楼主是后台asp.net webapi接口吗,如果是,我记得在配置文件配置就可以了
<customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Content-Type" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
      </customHeaders>
netcore2.1在startup方法ConfigureService如下:
services.AddCors(options =>
{
options.AddPolicy("AllowSpecificOrigins",
builder =>
{
builder
.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod();
});
});
Configure方法如下:
app.UseCors("AllowSpecificOrigins");

花开花落-2014 | 园豆:67 (初学一级) | 2020-05-07 15:23

不是,他是用Java写的。不知道是不是要用nginx发布才行,里面设置了什么corsFliter什么的,应该是解决跨域问题的

支持(0) 反对(0) 茄子鱼 | 园豆:202 (菜鸟二级) | 2020-05-07 15:28

@茄子鱼: java就不知道啦,额

支持(0) 反对(0) 花开花落-2014 | 园豆:67 (初学一级) | 2020-05-07 15:29

@茄子鱼: 我是net后台,哈哈

支持(0) 反对(0) 花开花落-2014 | 园豆:67 (初学一级) | 2020-05-07 15:30

@花开花落-2014: 谢谢哦

支持(0) 反对(0) 茄子鱼 | 园豆:202 (菜鸟二级) | 2020-05-07 15:34
0

跨域了, 用Nginx 代理一下端口,或者就是大伙们说的, 后端 设置一下允许跨域

永远跟党走i | 园豆:1519 (小虾三级) | 2020-05-07 16:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册