jsonp跨域请求数据实现手机号码查询实例分析
本文实例讲述了jsonp跨域请求数据实现手机号码查询的方法。分享给大家供大家参考,具体如下:
前言
网上有很多开放的api,我们在本地通过ajax获取数据时,总会碰到一个问题,那就是跨域!如果不借助php等,仅仅通过js怎么解决跨域的问题呢?或许jsonp是个不错的选择。
知识准备
之前一篇《说说JSON和JSONP也许你会豁然开朗》对jsonp已经介绍的很详细了,这里就不多介绍了,直接上实例吧
代码:
<!DOCTYPEHTML> <html> <head> <metacharset="utf-8"/> <metaname="author"content="@my_coder"> <metaname="viewport"content="width=device-width,initial-scale=1.0,user-scalable=no,minimum-scale=1.0,maximum-scale=1.0"> <title>手机号查询</title> <styletype="text/css"> html{color:#000;background:#fff;} body,ul,li,input,h1,button,p{padding:0;margin:0;} li{list-style:none;} html{background:#F6F8FC;overflow:hidden;} .outer{margin:0auto;width:280px;position:relative;} h1{font-size:20px;text-align:center;border-bottom:1pxdotted#A3C4DB;padding:10px0;} p{font-size:14px;padding:14px010px;} input[type="text"]{width:200px;height:30px;font-size:18px;} .button{display:inline-block;width:60px;font-size:16px;text-align:center;line-height:34px;background:linear-gradient(#fff,#ccc);border:1pxsolid#004;border-radius:3px;cursor:pointer;} ul{padding-top:26px;} li{font-size:18px;line-height:30px;} .error{position:absolute;left:4px;top:80px;color:red;font-size:14px;display:none;} </style> </head> <body> <h1>手机号码归属地查询</h1> <divclass="outer"> <p>请输入手机号码</p> <inputtype="text"> <spanclass="button">查询</span> <spanclass="error">号码有误或无数据</span> <ul> <liclass="num">手机号码:<span></span></li> <liclass="province">归属省份:<span></span></li> <liclass="operators">运营商:<span></span></li> </ul> </div> <scripttype="text/javascript"src="jquery-1.8.0.min.js"></script> <script> vartel; varajax=function(){ //淘宝接口 $.ajax({ type:"get", url:'http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel='+tel, dataType:"jsonp", jsonp:"callback", success:function(data){ console.log(data); $('.error').css('display','none'); varprovince=data.province, operators=data.catName, num=data.telString; $('.numspan').html(num); $('.provincespan').html(province); $('.operatorsspan').html(operators); }, error:function(){ $('lispan').html(''); $('.error').css('display','block'); } }); } varreg=/^(13|15|18)[0-9]{9}$/; //点击查询 $('.button').click(function(){ tel=$('input[type=text]').val(); if(tel){ if(reg.test(tel)){ ajax(); }else{ $('lispan').html(''); $('.error').css('display','block'); } } }); //键盘事件 $(window).keydown(function(event){ tel=$('input[type=text]').val(); if(event.keyCode==13){ if(tel){ if(reg.test(tel)){ ajax(); }else{ $('lispan').html(''); $('.error').css('display','block'); } } } }); </script> </body> </html>
希望本文所述对大家jQuery程序设计有所帮助。