jsonp解决js跨域的问题

一、什么是跨域?

    当前发送请求的页面与请求的后台不在同一个服务器上,协议、域名、端口三者有一个不同都会形成跨域。跨域是由于浏览器的同源策略造成的,是浏览器的安全限制。

二、jsonp解决跨域

    由于js可以跨域加载js文件,所以利用这一特性绕过跨域请求。

    方法一:使用ajax的jsonp进行处理

   页面请求代码:

    这种方法只能是GET请求方式,dataType为jsonp

    服务器处理请求代码:

  

    参数中的callback会获取请求传到后台的回调函数,返回callback+ "(" + JsonUtils.objectToJson(result) + ");"后,会将对应的数据返回给页面请求对应的success方法接收。

    服务器端还可以使用另一种方式处理,如下图:

    

    该方式需要spring4.1以上的版本。

    方法二:使用jquery的jsonp插件进行处理

    插件下载网址:https://github.com/jaubourg/jquery-jsonp

    页面请求代码:

    

    后台处理方式同上面第一种方法相同,方法二的优点在于不仅仅局限于GET方式提交,同时也可以是POST提交。

    方法三:可以利用nginx反向代理实现,这样浏览器访问时就不存在跨域的问题了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值