使用Jsonp调用聚合数据API免费查询手机号码归属地
2017-09-18 21:37
836 查看
准备工作:使用聚合数据,调用免费API,需要先注册账号,免费申请获取手机号码归属地,这是网址https://www.juhe.cn/docs/api/id/11。
要理解跨域,首先要了解一下同源策略。
1、url 请求地址
2、type 请求方式,默认是'GET',常用的还有'POST'
3、dataType 设置返回的数据格式,常用的是'json'格式,也可以设置为'html'
4、data 设置发送给服务器的数据
5、success 设置请求成功后的回调函数
6、error 设置请求失败后的回调函数
7、async 设置是否异步,默认值是'true',表示异步
首先需要一个data.json文件,然后测试一下ajax的使用,注意引入jquery.js文件。
data.json
新的写法(推荐):
1.这是jsonp请求本地数据的小例子,不过需要安装本地服务器环境,例如tomcat,apache,node.js等,然后写一个data.js文件
data.js
2.请求聚合数据的API,免费查询手机号码归属地。注意使用刚刚申请的key。
$("input").keydown(function (e) {//当按下按键时
if (e.which == 13) {//.which属性判断按下的是哪个键,回车键的键位序号为13
$('#search-button').trigger("click");//触发搜索按钮的点击事件
}
});
测试:随便写一个手机号码
要理解跨域,首先要了解一下同源策略。
1.同源策略
所谓同源是指,域名,协议,端口相同,ajax请求的页面或资源只能是同一个域(域名,ip)下面的资源,不能是其他域的资源,这是在设计ajax时基于安全的考虑。特征报错提示:XMLHttpRequest cannot load https://www.sina.com/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
2.$.ajax使用方法
常用参数:1、url 请求地址
2、type 请求方式,默认是'GET',常用的还有'POST'
3、dataType 设置返回的数据格式,常用的是'json'格式,也可以设置为'html'
4、data 设置发送给服务器的数据
5、success 设置请求成功后的回调函数
6、error 设置请求失败后的回调函数
7、async 设置是否异步,默认值是'true',表示异步
首先需要一个data.json文件,然后测试一下ajax的使用,注意引入jquery.js文件。
data.json
{ "code":1, "data":{ "name":"xiaowang", "age":88 } }
$.ajax({ url: 'js/data.json', type: 'GET', dataType: 'json', data:{'number':1} success:function(data){ alert(data.name); }, error:function(){ alert('服务器超时,请重试!'); } });
新的写法(推荐):
$.ajax({ url: 'js/data.json', type: 'GET', dataType: 'json', data:{'aa':1} }) .done(function(data) { alert(data.name); }) .fail(function() { alert('服务器超时,请重试!'); });
3.jsonp
ajax只能请求同一个域下的数据或资源,有时候需要跨域请求数据,就需要用到jsonp技术,jsonp可以跨域请求数据,它的原理主要是利用了script标签可以跨域链接资源的特性。jsonp和ajax原理完全不一样,不过jquery将它们封装成同一个函数1.这是jsonp请求本地数据的小例子,不过需要安装本地服务器环境,例如tomcat,apache,node.js等,然后写一个data.js文件
data.js
fnCallBackMethod( { "name":"请求成功!", "age":10 } )
$.ajax({ url:'js/data.js', type:'get', dataType:'jsonp', jsonpCallback:'fnBack' }) .done(function(data){ alert(data.name); }) .fail(function() { alert('服务器超时,请重试!'); });
2.请求聚合数据的API,免费查询手机号码归属地。注意使用刚刚申请的key。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>jsonp跨域访问</title> <style> div, ul, li, input { margin: 0px; padding: 0px; } .logo_div { width: 240px; height: 64px; margin: 200px; } .search_div { height: 50px; width: 620px; border: 1px solid #19b955; margin: 10px; position: relative; } .search_div .text { border: 0; height: 50px; width: 520px; height: 50px; font-size: 18px; text-indent: 10px; } .search_div #search-button { border: 0; cursor: pointer; font-family: "Microsoft YaHei"; font-size: 20px; height: 51px; outline: none; right: 0px; position: absolute; top: 0; width: 100px; background-color: #19b955; color: #fff; } .container { width: 620px; height: 230px; margin: 10px; border: 1px solid gray; border-radius: 3px; background: #ccc; display: none; } #list { width: 600px; height: 210px; margin: 0 auto; list-style: none; background: #333333; color: white; margin-top: 10px; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; } #list li { margin-top: 4px; font-size: 18px; padding: 4px; } </style> <script src="js/jquery-1.12.4.min.js"></script> <script> $(function () { //处理选中蓝色边框问题 $(".text").focus(function () { $(".text").css({ "outline": 0 }) })
$("input").keydown(function (e) {//当按下按键时
if (e.which == 13) {//.which属性判断按下的是哪个键,回车键的键位序号为13
$('#search-button').trigger("click");//触发搜索按钮的点击事件
}
});
$("#search-button").click(function () { if ($(".text").val() == "") { return; } else { $.ajax({ url: 'http://apis.juhe.cn/mobile/get', type: "get", dataType: "jsonp", data: { phone: $(".text").val(), dtype: "json", key: "你的key" } }) .done(function (data) { $(".container").fadeIn(); var $list = $("#list"); var sStr = ""; sStr += "<li>手机号码:" + $(".text").val() + "</li>"; sStr += "<li>省份:" + data.result["province"] + "</li>"; sStr += "<li>城市:" + data.result["city"] + "</li>"; sStr += "<li>区号:" + data.result["areacode"] + "</li>"; sStr += "<li>邮编:" + data.result["zip"] + "</li>"; sStr += "<li>运营商:" + data.result["company"] + "</li>"; $list.html(sStr); $(".text").val("") }) .error(function () { var $list = $("#list"); var sStr = ""; sStr += "<li>" + "没有数据" + "</li>"; }) } }) }) </script> </head> <body> <div class="search_div"> <input type="text" class="text" placeholder="请输入手机号码"> <input type="button" id="search-button" value="查询"> </div> <div class="container"> <ul id="list"></ul> </div> </body> </html>
测试:随便写一个手机号码
相关文章推荐
- Android手机号码归属地的查询(使用聚合数据API,获取JSON数据并解析)
- 免费手机号码归属地API查询接口和PHP使用实例分享
- 免费手机号码归属地API查询接口和PHP使用实例分享
- 调用第三方API ,实现手机号码归属地及运营商查询
- 免费手机号码归属地API查询接口
- 免费手机号码归属地API查询接口
- 免费手机号码归属地API查询接口
- 免费手机号码归属地API查询接口
- 免费手机号码归属地API查询接口
- 安卓开发之使用第三方的聚合数据API,QQ测吉凶案、身份证号码查询。
- 基于Python脚本和聚合数据实现手机号码归属地信息查询
- Java调用免费的WebService示例【天气预报】【国内手机号码归属地查询】
- 本地的手机号码归属地查询-oracle数据
- 手机号码归属地查询api
- 本地的手机号码归属地查询-oracle数据
- 网易有道 IP地址、邮编区号及城市查询、手机号码归属地和身份证 查询接口API
- 使用Locating 系统查询手机号码归属地
- android 使用http请求查询手机号码归属地
- 号码归属地查询API(返回json和XML数据)