群英会开奖走势图实时:JSONP 教程

山东群英会开奖查询 www.9ai5a.cn JSONP是一种使用模式,人们常常把JSONP和JSON混淆,他们虽然有关系,但是描述的不是一个事物,JSONP是JSON with Padding的简称。本篇会说明JSONP是一个什么?怎么是去使用。

通俗讲,JSONP 为解决跨域而诞生。是为了基于浏览器Web请求不通源之间的请求。

为了下面更好的讲解JSONP,先解释一下跨域。

具体讲,是解决不同源,被浏览器监管Javascript的安全限制。

  • //www.9ai5a.cn调用//www.9ai5a.cn/json/是不会跨域的。
  • //www.9ai5a.cn 调用//www.itboy.net/json/是跨域的,因为不同域名。
  • //www.9ai5a.cn调用https://icp.sojson.com/search1_baidu.com.html 是跨域的。因为是不同二级域名。
  • //www.9ai5a.cn:8080调用//www.9ai5a.cn:8081 是跨域的。因为是不同端口。
  • //www.9ai5a.cn调用//www.9ai5a.cn 是跨域的。因为是不同请求协议,http和https。
  • 188.188.188.20调用199.199.199.99 是跨域的。因为不同IP。
  • localhost调用127.0.0.1 也是跨域的。其实他也是不同域名。

JSONP for Java (一)

前端代码,Javascript:

<script>
    //jsonp回调方法,一定要写在jsonp请求前面
    function callback(txt){
        alert(txt);
    }
</script>
<script src ="/demo/testJsonp.shtml" type="text/javascript" ></script>

后端代码,Java:

/**
 * jsonp 测试
 * @return
 */
@RequestMapping(value="testJsonp",method=RequestMethod.GET)
@ResponseBody
public String testJsonp(){
	return "callback('test jsonp');";
}

前端会alert弹出的内容“test jsonp”。

JSONP for Java ,自定义callback函数(二)

前端代码,Javascript:

<script>
    //jsonp回调方法,一定要写在jsonp请求前面
    function testjson(txt){
        alert(txt);
    }
</script>
<script src ="/demo/testJsonp.shtml?callback=testjson" type="text/javascript" ></script>

后端代码,Java:

/**
 * jsonp 测试
 * @return
 */
@RequestMapping(value="testJsonp",method=RequestMethod.GET)
@ResponseBody
public String testJsonp(String callback){
	return callback +"('test jsonp');";
}

JSONP for Java ,jQuery Ajax请求

前端代码,Javascript:

<script>
var testjsonp = function(data){
    $.each(data.data,function () {
        alert("时间:" + this.time +",内容:" + this.info);
    });
}
var demoJSONP = function () {
    $.getScript("//www.9ai5a.cn/open/api/kuaidi/get.shtml?orderNo=887180351164743887&callback=testjsonp");
}
</script>

这个接口您不要去尝试使用,因为它的数据来自百度而已。

JSONP for PHP ,jQuery

PHP代码:

<?php
    $data = ".......";
    $callback = $_GET['callback'];
    echo $callback.'('.json_encode($data).')';
    exit;
?>

前端代码,Javascript:

<script>
$.ajax({
    type : "post",
    url : "ajax.php",
    dataType : "jsonp",
    jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
    jsonpCallback:"success_jsonpCallback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
    success : function(json){
        alert('success');
    },
    error:function(){
        alert('fail');
    }
});
</script>
支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

正在加载... ...

  • 三江源通天河流域发现两千年前岩画 2019-01-08
  • 中国4月减持58亿美元美国国债 仍是美国最大债主 2019-01-06
  • 驻村书记张春雪扶贫记:我为黄花代言 2019-01-06
  • 国务院税则委员会发布关于对原产于美国500亿美元进口商品加征关税的公告 2019-01-04
  • 建立新道教的是他! 汤一介谈北魏道教领袖寇谦之 2018-12-28
  • 产油国步调不一 渐进增产可能性大 2018-12-28
  • 昌吉市启动百日文化旅游活动 2018-12-26
  • 环球佳酿举行新品发布会 百余款酒品集中发售 2018-12-26
  • 天上不会掉馅饼,想要富起来,就要把别人的据为己有,能把别人的据为己有的问世间能有谁,能有几人,所谓的专家明白了吗。 2018-12-04
  • 傅小慧:丰富的资源是宁夏吸引港商的最大优势 2018-11-26
  • 重攻轻防 阿兹特克雄鹰能否摆脱"16郎"尴尬 2018-11-22
  • 我国居民人均预期寿命又提高了 2017年提高至76.7岁 2018-11-22
  • 人民日报里庄旧址二三事 2018-11-16
  • 让人类文明更为丰富多彩充满活力——学习习近平主席上合组织青岛峰会重要讲话④ 2018-11-14
  • 侯晓春带队赴深圳开展投资促进活动  2018-11-14
  • 879| 582| 261| 603| 212| 37| 314| 632| 582| 148|