js之跨域访问

本文介绍了一种通过JSONP实现跨域请求的方法,并详细展示了客户端和服务端的具体实现过程。客户端通过动态创建script标签发送GET请求,服务端接收并响应数据,最终通过回调函数处理返回的数据。

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

跨域访问:

jsonp模式

优点:简单

缺点:只支持get

实现如下:

1.调用的函数:

function jsonp(){
	var data = "hellow";
	var _script = document.createElement('script');
	_script.type = "text/javascript";
	_script.src = "http://linkrmb.com/jsonp?data=" + data;
	document.head.appendChild(_script);
}

 

2.服务端的处理:

@RequestMapping(value = "/jsonp", headers = "content-type=application/octet-stream")
@ResponseBody
public String jsonp(HttpServletRequest request) throws Exception {
	String data = request.getParameter("data");
	List<String> list = JSON.parseArray(data, String.class);
	log.info("****data list:{}", list);
	 
	boolean isOk = true;
	return "save('" + isOk + "')";
}

3.页面回调函数处理:

  <script>
    function save(data) {
      alert("谢谢关注敬请期待!");
      window.location.reload();
    }
  </script>

原理:

相当于第一个方法生成了

<script type="text/javascript">

save(true);

</script>

那么直接执行了save方法完成跨域请求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值