如何解决JS或Jquery ajax异步跨域问题

本文介绍了两种常见的跨域请求处理方案:jsonp方式与CORS(跨源资源共享)方式。重点讲解了CORS方式的实现原理及具体操作步骤,包括前端如何发起跨域请求,后端如何设置响应头来支持跨域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单的概括下,解决办法有两种。

                  一种是jsonp方式:即在前端发送异步请求时,添加相关的jsonp设置或配置;后端则返回可供jsonp解析的格式的串。

                                                  
但是jsonp方式只支持get的请求方式,并且不被新浏览器版本的支持(新浏览器版本多进行OPITION请求--异步安全检查的测试的请求,所以jsonp方式无法通过),


这里就不多了解了。

               一种是cros方式优点就是更安全,能指定连接白名单,能限定请求方法(也就是支持多种请求方法),主流浏览器都支持。主要说一下实现方式,

前端:和普通异步请求一样的格式,如:

$.ajax({
			url :'http://localhost:8080/myProject/test'
		        type : "GET",//不局限于get
			data:{"key1":value1,"key2":value2},
			async : true,
			success : function(data) {
				var dataObj=eval("("+data+")");
				 console.log(dataObj);
				
			},
			error : function(data) {
				alert( "服务器连接失败 ajaxJsonp" );
			}
		}); 

后端:主要是设置响应头参数

	response.setHeader("Access-Control-Allow-Origin", "*");//设置可跨域资源共享的域名,只能设置一个具体的域名,但*可以代表所有
	response.setHeader("Access-Control-Allow-Methods","GET,POST,PUT,OPTIONS");//设置可跨域资源共享的请求方式
        response.setHeader("Access-Control-Allow-Credentials","true");
        response.setHeader("Access-Control-Allow-Headers" ,"Origin, X-Requested-With, Content-Type, Accept");


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值