内容简介:(3)域名不同,(4)子域名不同,前端代码:
前言 :本文示例部署在XAMPP建站集成软件包上,在localhost环境下进行测试
1、什么是跨域
- 由于浏览器同源策略,凡是发送请求url的协议、域名、端口三者之间任意一与当前页面地址不同即为跨域。存在跨域的情况 :
(1)网络协议不同,如http协议访问https协议。
(2)端口不同,如8080端口访问3000端口。
(3)域名不同, 如aaaa.com访问bbbb.com 。
(4)子域名不同, 如java.ddd.com访问qianduan.ddd.com 。
(5)域名和域名对应ip,如www.a.com访问20.205.28.90.
2、Jsonp方法
- 因为srript标签是不存在跨域的,所以利用 script标签,加载src路径,实现跨域加载js文件。该js文件中需要定义好一个方法,将该方法名传递给服务端,服务端根据该方法名,拼装一个方法调用语句,响应给浏览器。又浏览器来执行该语句调用方法。通过参数,将响应的数据取出即可。
(1)原生JS请求方式
- 前端代码:
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = './js/text.js';
document.head.appendChild(script);
// 回调执行函数
function onBack(res) {
console.log(res) //{name:"小明",age:24}
}
- 后端代码:
onBack({
name:"小明",
age:24
})
- 这里需要注意的是,后端的数据形式必须作为函数的参数,且函数名要前后端保持一致。
(2)Jquery中的ajax请求方式
前端代码:
$.ajax({
url:"./js/text.js",
type:"GET",
dataType:"jsonp", // 定义返回方式为jsonp
jsonpCallback:"onBack", //定义回调函数名字,前后端保持一致
success:function(data){
console.log(data) //{name:"小明",age:24}
},
error:function(res){
console.log("请求失败!")
}
})
后端代码:
onBack({
name:"小明",
age:24
})
- 缺点1:只能使用get请求。
- 缺点2:因为使用的是script标签,存在安全隐患。
- 优点1:支持老式浏览器,以及可以向不支持CORS的网站请求数据。
以上所述就是小编给大家介绍的《利用Jsonp跨域请求数据(原生和Jquery的ajax请求),简单易懂!》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 原生JS发送异步数据请求
- 封装一个原生js的ajax请求,支持IE9CORS跨域请求
- HttpRaw2Jsoup v1.5,将原生 http 请求转换成 Jsoup 请求代码
- python 学习笔记之手把手讲解如何使用原生的 urllib 发送网络请求
- Python 学习笔记之手把手讲解如何使用原生的 urllib 发送网络请求
- [提交缺陷]Swoole2.X版本提供PHP原生协程支持实践,Http请求部分的$httpclient-setDefer();该行出...
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Smashing Book
Jacob Gube、Dmitry Fadeev、Chris Spooner、Darius A Monsef IV、Alessandro Cattaneo、Steven Snell、David Leggett、Andrew Maier、Kayla Knight、Yves Peters、René Schmidt、Smashing Magazine editorial team、Vitaly Friedman、Sven Lennartz / 2009 / $ 29.90 / € 23.90
The Smashing Book is a printed book about best practices in modern Web design. The book shares technical tips and best practices on coding, usability and optimization and explores how to create succes......一起来看看 《The Smashing Book》 这本书的介绍吧!