jsonp

jsonp

(1)js不行了

因为有两个系统,前台系统www.jt.com:8082,后台系统manage.jt.com:8081。js真不行

js的同源策略(这是规定,为了安全js不可以跨域访问,拒绝)

跨域:协议+IP地址+端口,域名/IP

域名:

         域名:jt.com

主域名:www.jt.com 配置主机头(国际)

         二级域名:manage.jt.com/cart.jt.com/sso.jt.com

         三级域名:a.manage.jt.com

没有四级域名

(2)实验

1>后台

准备test.json

准备test.htm

开启后台做测试



2>前台

准备test2.htm


启动前台进行测试

XMLHttpRequest cannot loadhttp://manage.jt.com/test.json. No 'Access-Control-Allow-Origin' header is present on the requestedresource. Origin 'http://www.jt.com' is therefore not allowed access.

因为js的同源策略

www.5disk.cn我的网盘,所有html文件都被感染,在每个html页面中加载<scriptsrc=”http:/www.ejfje/xxx.js”> 埋点

 

js有个漏洞<script src=”请求外部网站”>这样可以请求跨域网站

(3)怎么修改一下就可以访问了呢?

1)  把请求json串请求放入到<script标签中,作为它的src

<script type="text/javascript"src="http://manage.jt.com/test.json"></script>

在这个文件中写一个js自定义函数

         <scripttype="text/javascript">

                   functiontest(data){

                            alert(data.key);

                   }

         </script>

2)把json稍加改变,加一个类似函数调用方式,加一个函数名把真个json包括起来。函数名必须和test一致

test({

         "key":"jtgood!"

});

3)测试


上面这个方式叫jsonp,它就可以实现js跨域。

跨域只在js中特殊现象。

jsonp必须应用在js跨域环境中,而且返回值必须是json包装。

(4)jsonp使用的两个前提:

1)  在js中

2)  返回值是json,被包装的。

 

(5)jQuery支持jsonp,SpringMVC框架支持jsonp




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值