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 相关文章推荐
基于jquery的实现简单的表格中增加或删除下一行
Aug 01 Javascript
jQuery 表单验证扩展(四)
Oct 20 Javascript
JS性能优化笔记搜索整理
Aug 21 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
Jan 14 Javascript
js实现简单的购物车有图有代码
May 26 Javascript
JavaScript动态创建link标签到head里的方法
Dec 22 Javascript
Easyui Treegrid改变默认图标的方法
Apr 29 Javascript
JavaScript中值类型和引用类型的区别
Feb 23 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
Oct 12 Javascript
vue回到顶部监听滚动事件详解
Aug 02 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
Sep 28 Javascript
Vue.js使用axios动态获取response里的data数据操作
Sep 08 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
PHP判断图片格式的七种方法小结
2013/06/03 PHP
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
2014/06/21 PHP
什么是DOM(Document Object Model)文档对象模型
2012/03/05 Javascript
JS模板实现方法
2013/04/03 Javascript
js实现右下角可关闭最小化div(可用于展示推荐内容)
2013/06/24 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
2013/09/29 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
2017/03/22 Javascript
react-router JS 控制路由跳转实例
2017/06/15 Javascript
js Element Traversal规范中的元素遍历方法
2018/04/19 Javascript
clipboard.js在移动端复制失败的解决方法
2018/06/13 Javascript
vue 自定义右键样式的实例代码
2019/11/06 Javascript
JS实现时间校验的代码
2020/05/25 Javascript
jQuery实现简单飞机大战
2020/07/05 jQuery
详解Python的Django框架中的templates设置
2015/05/11 Python
Pycharm学习教程(4) Python解释器的相关配置
2017/05/03 Python
从请求到响应过程中django都做了哪些处理
2018/08/01 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
Python将视频或者动态图gif逐帧保存为图片的方法
2019/09/10 Python
python 并发下载器实现方法示例
2019/11/22 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
2020/12/03 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
css3实现蒙版弹幕功能
2019/06/18 HTML / CSS
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
幼儿园教师奖惩制度
2014/02/01 职场文书
收银员岗位职责
2014/02/07 职场文书
亮化工程实施方案
2014/03/17 职场文书
疾病防治方案
2014/05/31 职场文书
展览会邀请函
2015/02/02 职场文书
小学教师党员承诺书
2015/04/27 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书
Python识别花卉种类鉴定网络热门植物并自动整理分类
2022/04/08 Python