ajax跨域请求被浏览器拒绝,ajax请求发送失败。no-referrer-when-downgrade Provisional headers are shown

项目场景:

项目需求:有a和b两个项目,a项目需要发送ajax请求b项目中的数据。
我在a项目中的表单提交按钮时,调用js方法,方法中发送ajax请求,被浏览器拒绝,请求发送不出去,浏览器请求状态为(canceled),报错no-referrer-when-downgrade
Provisional headers are shown。

form按钮:
在这里插入图片描述

ajax请求代码:
在这里插入图片描述


问题描述:

在项目中,jsp页面发送ajax请求到另一个项目,请求被浏览器拒绝,发送请求失败,另一个项目没有接收到请求。浏览器报错如下:

(canceled)
Referrer Policy: 
no-referrer-when-downgrade
Provisional headers are shown

在这里插入图片描述
在这里插入图片描述


原因分析:

浏览器拒绝发送请求,可能是发送ajax请求时,被外部干扰打断ajax请求,导致请求发送失败。


解决方案:

方案一:把ajax请求改为同步执行(async: false,)。
方案二:阻止表单的默认提交事件,找到外部干扰提交并干掉他(event.preventDefault();)。。

我的解决是把ajax请求改为同步执行的:
设置ajax的async为false:

async: false

$.ajax({
            	type : "POST",
            	url : "url",
            	data : formdatastr,
            	contentType: "application/json", 
            	cache:false,
            	async: false,  //同步执行
            	selfDef:true,  
            	headers : {
            		"Authorization" : token,
            	},
            	success : (res)=>{
            		console.log(res)
            	},
            	error : (res)=>{
            		console.log("error")
            	}
            });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成年人的苦衷

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值