jsonp跨域
跨域 jsonp
2023-09-14 08:58:48 时间
/*
* @CORS跨源资源共享 ==> 使用自定义的HTTP头部让浏览器与服务器进行沟通
* @Origin头部 ==> 包含请求页面的源信息(协议, 域名和端口)
* @如: Origin: http://www.nczonline.net
* @如果服务器认为这个请求是可以接受的就在Access-Control-Allow-Origin头部返回相同的源信息
*/
/*
* @JSONP(JOSN with padding) ==> 填充式JSON或参数式JSON, 是应用JSON的一种新方法
* @JSONP ==> 由两部分组成, 回调函数和数据
* @1.回调函数 ==> 是响应到来时应该在页面中调用的函数, 回调函数的名字一般的请求中指定
* @2.数据 ==> 是传入回调函数中的JSON数据
* @3.JOSNP是通过动态<script>元素来使用, 这样就不受跨域影响
*/
// 前端使用jq
$.ajax({ type: "GET", async: false, url:"http://taoalan.com/json/alan.php", dataType: "jsonp", jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback) jsonpCallback:"flightHandler",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据 success: function(json){ alert('您查询到航班信息:票价: ' + json.price + ' 元,余票: ' + json.tickets + ' 张。回调函数名为: '+json.func); }, error: function(){ alert("fail"); } });
// 后台http://taoalan.com/json/alan.php文件中
<?php $callback = $_GET["callback"]; $a = array( 'code'=>'CA1998', 'price'=>'6000', 'tickets'=>20, 'func'=>$callback, ); $result = json_encode($a); echo "flightHandler($result)"; exit; ?>
// 原生js使用script动态添加
function loadhandleResponse(){ var script = document.createElement("script"); script.src = "http://taoalan.com/json/alan.php?callback=flightHandler"; document.body.insertBefore(script, document.body.firstChild); }
相关文章
- Ajax跨域:Jsonp原理解析
- jquery.ajax 跨域请求webapi,设置headers
- ajax 跨域 headers JavaScript ajax 跨域请求 +设置headers 实践
- WebApi中跨域解决办法
- 在ASP.NET MVC3 中利用JSONP跨域登录WEB系统
- jQuery跨域请求,跨域Post提交数据的方法(.net/SQL技术交流群206656202 入群需注明博客园) - 思...
- Atitit.js跨域解决方案attilax大总结 后台java php c#.net的CORS支持
- jsonp的原理·jsonp是不是ajax中实现跨域访问的技术
- 跨域、跨服务器调用时候session丢失的问题
- 华为运营商级路由器配置示例 | 跨域L3VdPdNdv4 over SRv6 TE Policy
- Nginx 跨域请求处理——筑梦之路
- ajax跨域请求--jsonp实例
- ajax jsonp跨域
- 跨域请求jQuery的ajax jsonp使用常见问题解答
- 内网渗透(四十七)之域控安全和跨域攻击-多种方式提取和移动ntds.dit文件