这篇文章主要为大家展示了“ajax和jsonp跨域原理的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ajax和jsonp跨域原理的示例分析”这篇文章吧。
创新互联公司始终坚持【策划先行,效果至上】的经营理念,通过多达10余年累计超上千家客户的网站建设总结了一套系统有效的全网营销解决方案,现已广泛运用于各行各业的客户,其中包括:成都门帘等企业,备受客户称誉。为什么会有跨域问题? - 因为有同源策略
同源策略是浏览器的一种安全策略,所谓同源指的是 请求URL地址中的 协议, 域名 和 端口 都相同,只要其中之一不相同就是跨域
同源策略主要为了保证浏览器的安全性
在同源策略下,浏览器 不允许 Ajax跨域获取服务器数据
http://www.example.com/detail.html
跨域请求:
http://api.example.com/detail.html 域名不同
http://www.example.com:8080/detail.html 端口不同
http://api.example.com:8080/detail.html 域名、端口不同
https://api.example.com/detail.html 协议、域名不同
https://www.example.com:8080/detail.html 端口、协议不同
ajax的基本概念
了解这个概念,首先得先知道同步交互与异步交互
同步交互:客户端浏览器给服务器发送一个请求,服务器返回一个页面,返回的页面会把之前的页面覆盖掉,我们把这种交互方式称为同步交互
异步交互:就是可会断浏览器给服务器发送一个请求,服务器返回数据,返回的数据不会把之前的页面覆盖掉,我们把这种交互方式称之为异步交互
ajax主要的应用场景:页面不刷新,就可以与服务器进行动态的数据交互
交互的原理
同步交互原理:我们在浏览器,怎么给服务器发送请求呢?可以点击超链接,提交表单,浏览器地址栏输入地址,都是给服务器发送请求,实际上是浏览器帮助我们给服务器去发送请求
异步交互的原理:JavaScript给我们提供了一个新的API接口,帮我们去发送http请求,由XMLHttpRequest 对象来帮助我们发送请求
我们所有的交互操作都可以通过这个对象来完成,发送请求,接受服务器的数据
ajax的具体应用场景
前台可以通过XMLHttpRequest 给服务器发送请求,然后再通过XMLHttpRequest 对象来接受服务器返回的数据,最后通过dom操作把数据写到页面上
ajax:可以用来表单输入规范验证
ajax:也可以用来做性能优化,比如一个页面非常庞大,这个页面不可能一次加载完毕,实现一个滚动加载
XMLHttpRequest 交互的四个步骤
1,实例化XMLHttpRequest 对象
2,想和服务器进行交互,必须和服务器打开一个连接
3,给服务器发送数据,发送参数数据到服务器
4,接受服务器返回的数据,服务器在返回给客户端的时候会返回一些状态,可以通过监听服务器状态的改变,来更好的操控整个交互流程
ajax跨域
跨域:假设我访问 a 站点,后台返回给我一个页面,然后我又想在 a 站点的这个页面去访问 b 站点的资源,这就是一个跨域的效果,跨域浏览器是有安全限制的
解决·跨域的方式:jsonp方式
JSONP 全称是 JSON with Padding ,是基于 JSON 格式的为解决跨域请求资源而产生的解决方案。他实现的基本原理是利用了 HTML 里 <script></script> 元素标签,远程调用 JSON 文件来实现数据传递。如要在 a.com 域下获取存在 b.com 的 JSON 数据( getUsers.JSON ):
jsonp解决跨域的本质原理:由于浏览器有同源限制,不同站点之间不能相互访问,但是有时候我们就是想要获取其他站点的数据,比如加入我们想要获取一下急速数据的天气预报数据,这肯定跨域了,那么我们该怎么办呢?
原理:就是动态创建<script>标签,然后利用<script>的src 不受同源策略约束来跨域获取数据。
这样在后台就可以获取到前台传过来的那个回调函数,,最后后台返回这个函数的调用,参数为前台请求的数据
js代码
<script type="text/javascript"> function handleResponse(response){ console.log(response); } </script> <script type="text/javascript"> window.onload = function() { var oBtn = document.getElementById('btn'); oBtn.onclick = function() { var script = document.createElement("script"); script.src = "https://api.douban.com/v2/book/search?q=javascript&count=1&callback=handleResponse"; document.body.insertBefore(script, document.body.firstChild); }; }; </script>
以上是“ajax和jsonp跨域原理的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
分享标题:ajax和jsonp跨域原理的示例分析-创新互联
文章起源:https://www.cdcxhl.com/article6/eegog.html
成都网站建设公司_创新互联,为您提供服务器托管、微信公众号、响应式网站、营销型网站建设、定制网站、ChatGPT
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联