jsonp跨域请求数据实现手机号码查询实例分析


Posted in Javascript onDecember 12, 2015

本文实例讲述了jsonp跨域请求数据实现手机号码查询的方法。分享给大家供大家参考,具体如下:

前言

网上有很多开放的api,我们在本地通过ajax获取数据时,总会碰到一个问题,那就是跨域!如果不借助php等,仅仅通过js怎么解决跨域的问题呢?或许jsonp是个不错的选择。

知识准备

之前一篇《说说JSON和JSONP 也许你会豁然开朗》对jsonp已经介绍的很详细了,这里就不多介绍了,直接上实例吧

代码:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<meta name="author" content="@my_coder">
 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<title> 手机号查询 </title>
<style type="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:0 auto;width:280px;position:relative;}
h1{font-size:20px;text-align:center;border-bottom:1px dotted #A3C4DB;padding:10px 0;}
p{font-size:14px;padding:14px 0 10px;}
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:1px solid #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>
  <div class="outer">
    <p>请输入手机号码</p>
    <input type="text" >
    <span class="button">查询</span>
    <span class="error">号码有误 或 无数据</span>
    <ul>
      <li class="num">手机号码: <span></span></li>      
      <li class="province">归属省份: <span></span></li>
      <li class="operators">运 营 商: <span></span></li>
    </ul>
  </div>
<script type="text/javascript" src="jquery-1.8.0.min.js" ></script>
<script>
  var tel;
  var ajax=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');
        var province = data.province,
          operators = data.catName,
          num = data.telString;
        $('.num span').html(num);
        $('.province span').html(province);
        $('.operators span').html(operators);
       },
       error:function (){  
        $('li span').html('');
        $('.error').css('display','block');    
       }
     });
  }
  var reg = /^(13|15|18)[0-9]{9}$/;
  //点击查询
  $('.button').click(function(){
    tel=$('input[type=text]').val();
    if(tel){
      if(reg.test(tel)){
        ajax();
      }else{
        $('li span').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{
          $('li span').html('');
          $('.error').css('display','block');  
        }
      }
    }
  });
</script>
</body>
</html>

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
自动更新作用
Oct 08 Javascript
asp 的 分词实现代码
May 24 Javascript
javascript 新浪背投广告实现代码
Jul 07 Javascript
jquery validation插件表单验证的一个例子
Mar 03 Javascript
javascript实现时间格式输出FormatDate函数
Jan 13 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
Feb 02 Javascript
javascript中sort() 方法使用详解
Aug 30 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
Aug 01 Javascript
Bootstrap CSS布局之按钮
Dec 17 Javascript
jQuery点击头像上传并预览图片
Feb 23 Javascript
完美实现js拖拽效果 return false用法详解
Jul 28 Javascript
JavaScript实现轮播图效果
Oct 30 Javascript
jQuery Validate初步体验(二)
Dec 12 #Javascript
jQuery Validate初步体验(一)
Dec 12 #Javascript
jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
Dec 12 #Javascript
jQuery同步提交示例代码
Dec 12 #Javascript
JavaScript匿名函数之模仿块级作用域
Dec 12 #Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
Dec 12 #Javascript
利用jQuery实现WordPress中@的ID悬浮显示评论内容
Dec 11 #Javascript
You might like
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
善用事件代理,警惕闭包的性能陷阱。
2011/01/20 Javascript
JQuery之拖拽插件实现代码
2011/04/14 Javascript
javascript中怎么做对象的类型判断
2013/11/11 Javascript
JavaScript实现的多种鼠标拖放效果
2015/11/03 Javascript
JavaScript事件 &quot;事件对象&quot;的注意要点
2016/01/14 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
vue2.0全局组件之pdf详解
2017/06/26 Javascript
详谈JS中数组的迭代方法和归并方法
2017/08/11 Javascript
vue2.x select2 指令封装详解
2017/10/12 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
2018/10/25 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
2019/09/09 Javascript
JS动态图片的实现方法完整示例
2020/01/13 Javascript
基于Vue实现微前端的示例代码
2020/04/24 Javascript
vue 授权获取微信openId操作
2020/11/13 Javascript
Python在线运行代码助手
2016/07/15 Python
python数据封装json格式数据
2018/03/04 Python
如何用Python实现简单的Markdown转换器
2018/07/16 Python
python elasticsearch环境搭建详解
2019/09/02 Python
使用tqdm显示Python代码执行进度功能
2019/12/08 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
2020/11/18 Python
python中编写函数并调用的知识点总结
2021/01/13 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
StubHub意大利:购买和出售全球演唱会和体育赛事门票
2017/11/21 全球购物
Spotahome意大利:公寓和房间出租
2020/02/21 全球购物
产品委托授权书范本
2014/09/16 职场文书
个人查摆剖析材料
2014/10/16 职场文书
写给妈妈的感谢信
2015/01/22 职场文书
小学数学教学随笔
2015/08/14 职场文书
英镑符号 £
2022/02/17 杂记
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android
CentOS MySql8 远程连接实战
2022/04/19 MySQL