文档章节

区分同源与非同源

 沉非
发布于 2017/09/03 19:54
字数 645
阅读 15
收藏 0

JSONP和AJAX相同,都是客户端向服务器端发送请求:1、给服务器端传递内容2、从服务器端获取数据 的方式

AJAX属于同源策略

JSONP属于非同源策略(跨域请求) -> 实现跨域请求的方式有很多种,只不过JSONP是最常用的

区分同源和非同源:

当前页面的地址   &&  数据请求的接口地址

    1)协议  2)域名或者IP 3)端口号

    以上三部分完全相同属于同源策略,就是用AJAX技术请求数据,如果有一个不同就属于非同源策略,一般使用JSONP技术请求数据

JSONP的原理:JSONP请求一定需要对方的服务器做支持才可以

在script的世界中,没有同源跨域这一说,只要你给我src属性中的地址是一个合法的地址,script都可以把对应的内容请求回来,JSONP就是利用了script的这个原理
    1、首先把需要请求数据的那个跨域的API数据接口的地址赋值给script的src属性中

    2、把当前页面中的某一个函数名当做参数值传递给需要跨域请求数据的服务器(url问好传参:callback=fn)

    3、服务器接收到请求后,需要进行特殊的处理,把你传递进来的函数名和它需要给你数据拼接成一个字符串, 例如:我们传递进去的函数名是fn,它准备好的数据是"fn([{'name':'xxx'}])"

    4、最后服务器把准备的数据通过HTTP协议返回给我们客户端,客户端发现其实就是让我们的fn执行,而且还给fn传递了一堆的数据,那些数据就是我们想要的

jquery的ajax和JSONP的调用

    ajax:

    $.ajax({

        url:"",

        type:"",

        dataType:"json",

        data:null,

        async:true,

        timeout: 1000,  //设置超时时间,一般都设置3000ms

        cache:false, //设定get请求的时候不走缓存数据,原理就是在url后面加一个缓存数,默认值是true

        success:function(data){},

        error:function(data){}

    })

jsonp:都是GET和异步请求的,不存在其他的请求方式和同步请求,而且jquery会默认会给JSONP的请求清除缓存

$.ajax({

        url:"",

        dataType:"jsonp",

        timeout: 1000,  //设置超时时间,一般都设置3000ms

       jsonpCallback:"fn" //自定义传递给服务器的函数名,而不是jquery自动生成的

        jsonp:"cb"  //吧传递函数名的那个形参callback变为cb

    })

    

 

 

 

© 著作权归作者所有

共有 人打赏支持
粉丝 1
博文 32
码字总数 24934
作品 0
海淀
程序员
私信 提问
浏览器同源策略及 Ajax 跨域解决方案

因为在开发过程中会经常遇到因为浏览器同源策略而导致的跨域问题,而多数开发者对浏览器同源策略和跨域问题并没有很清晰的认识,所以打算在这篇文章中说下浏览器同源策略和我们最经常会遇到的...

淘淘笙悦
2018/07/13
0
0
WebView跨源攻击分析

一同源策略 同源策略是浏览器最重要的一种安全机制,由Netscape于1995年最先提出,现在的主流浏览器都遵循这种策略[1]。同源一般指协议,域名,端口都相同,但IE浏览器会忽略对端口的判断。R...

球球
2016/06/17
43
0
同源策略和跨域问题

原文来自:http://www.ruanyifeng.com/blog/2016/04/same-origin-policy.html 浏览器安全的基石是"同源政策"(same-origin policy)。很多开发者都知道这一点,但了解得不全面。 本文详细介绍...

bug_killer
2017/12/14
0
0
出现跨域问题的原因及其解决方法

出现跨域问题的原因: 同源策略 同源策略 三同 协议相同 域名相同 端口相同 同源策略目的 保证用户信息安全,防止恶意网站窃取数据。同源策略是必须的,否则cookie可以共享。 同源策略的限制...

Husbin
2018/01/11
0
0
Microsoft Edge同源策略不严导致任意文件读取测试

漏洞介绍 近期看到文章介绍,称Microsoft Edge对SOP同源策略处理存在问题,可导致任意文件泄露。 SOP同源策略是比较常见的,简单来说,在访问A域名时,如果B域名站点存在JS动作通过XHR请求了...

日生三金
2018/09/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

多表查询

第1章 多表关系实战 1.1 实战1:省和市  方案1:多张表,一对多  方案2:一张表,自关联一对多 1.2 实战2:用户和角色 (比如演员和扮演人物)  多对多关系 1.3 实战3:角色和权限 (比如...

stars永恒
今天
7
0
求推广,德邦快递坑人!!!!

完全没想好怎么来吐槽自己这次苦逼的德邦物流过程了,只好来记一个流水账。 从寄快递开始: 2019年1月15日从 德邦物流 微信小app上下单,截图如下: 可笑的是什么,我预约的是17号上门收件,...

o0无忧亦无怖
昨天
7
0
Mac Vim配置

1.升级 vim   我自己 MacBook Pro 的系统还是 10.11 ,其自带的 vim 版本为 7.3 ,我们将其升至最新版: 使用 homebrew : brew install vim --with-lua --with-override-system-vim 这将下...

Pasenger
昨天
8
0
vmware安装Ubuntu上不了网?上网了安装不了net-tools,无法执行ifconfig?

1.重新设置网络适配器还是不行,如下指定nat 2.还需要指定共享网络,我是在无线环境下 3.无法执行ifconfig https://packages.ubuntu.com/bionic/net-tools到这个网站下载net-tools的deb文件...

noob_chr
昨天
4
0
解决SVN:E210007无法协商认证机制

svn:E210007 svn: Cannot negotiate authentication mechanism 执行下面代码即可 sudo yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-ldap...

临江仙卜算子
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部