前言
由于浏览器有同源策略,所以要想获取非同源(协议,域名,端口三者有一不同都算非同源)的页面的数据,就得进行跨域
(1) jsonp原理
由于 标签的src属性可以访问非同源的js脚本,所以通过src属性访问服务器会返回函数的js代码,而我们想要的数据就作为函数参数返回,而我们会先定义这个函数,返回的js代码就可执行
(2) jsonp实现代码
请求页面
<!DOCTYPE html>
<html>
<head>
< ></ >
</head>
<body>
< type="text/ ">
function jsonp(data){
console.log(username)
}
</ >
< type="text/ " src="jquery-1.8.3.min.js">
</ >
< type="text/ ">
$(document).ready(function(){
var url = "http://www.example.com/jsonp.php?callback=jsonp";
var = $('< ><\/ >');
.attr("src",url);
$("body").append( );
});
</ >
</body>
</html>
<?php
$data = {'name': '张三'};
$callback = $_GET['callback'];
echo $callback."(".json_encode($data).")";
?php>
之后php会返回
jsonp({
name:'niuni
})
然后PHP返回的代码h会被请求页面的jsonp方法执行
(3)jQuery的简便jsonp跨域
< >
function showData (data) {
console.info(data);
}
$(document).ready(function () {
$("#btn").click(function () {
$.ajax({
url: "http://www.example.comjsonp",
type: "GET",
dataType: "jsonp",// 返回数据类型
jsonpCallback: "showData",//回调函数
// 获取数据成功就执行success函数
success: function (data) {
console.info("data");
}
});
});
});
</ >
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
继续阅读与本文标签相同的文章
上一篇 :
该如何选择最适合你的开源框架?
下一篇 :
Capstone引擎正式支持RISC-V架构
-
5G城市,智慧军运!天河机场打造华中首个5G全覆盖机场
2026-05-15栏目: 教程
-
三一筑工亮相第四届BIM技术应用与建筑工业化论坛,核心技术获业界肯定!
2026-05-15栏目: 教程
-
雷尼绍联手合作伙伴简化脊柱植入体增材制造工艺
2026-05-15栏目: 教程
-
项目管理包括哪些内容
2026-05-15栏目: 教程
-
微信卸载后怎么恢复聊天记录?恢复微信聊天记录的正确方法
2026-05-15栏目: 教程
