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 相关文章推荐
一些有关检查数据的JS代码
Sep 07 Javascript
javascript 获取元素位置的快速方法 getBoundingClientRect()
Nov 26 Javascript
jquery动态增加删除表格行的小例子
Nov 14 Javascript
jQuery DOM删除节点操作指南
Mar 03 Javascript
Bootstrap下拉菜单Dropdowns的实现代码
Mar 17 Javascript
Vue中计算属性computed的示例解读
Jul 26 Javascript
微信小程序如何获取openid及用户信息
Jan 26 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
Mar 01 Javascript
vue2 中二级路由高亮问题及配置方法
Jun 10 Javascript
用VsCode编辑TypeScript的实现方法
May 07 Javascript
vue项目中js-cookie的使用存储token操作
Nov 13 Javascript
详解ES6实现类的私有变量的几种写法
Feb 10 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入门小知识
2008/03/24 PHP
为IP查询添加GOOGLE地图功能的代码
2010/08/08 PHP
PHP中in_array函数使用的问题与解决办法
2016/09/11 PHP
PHP用continue跳过本次循环中剩余代码的注意点
2017/06/27 PHP
起点页面传值js,有空研究学习下
2010/01/25 Javascript
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
JavaScript定义类或函数的几种方式小结
2011/01/09 Javascript
JavaScript调用堆栈及setTimeout使用方法深入剖析
2013/02/16 Javascript
jQuery登陆判断简单实现代码
2013/04/21 Javascript
jquery+ajax实现跨域请求的方法
2015/01/20 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
js实现拖拽效果
2015/02/12 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
python实现颜色rgb和hex相互转换的函数
2015/03/19 Python
在Docker上开始部署Python应用的教程
2015/04/17 Python
Python3读取文件常用方法实例分析
2015/05/22 Python
python生成器表达式和列表解析
2016/03/10 Python
详解Python爬取并下载《电影天堂》3千多部电影
2019/04/26 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
2019/06/26 Python
python根据多个文件名批量查找文件
2019/08/13 Python
Python实现word2Vec model过程解析
2019/12/16 Python
python实现粒子群算法
2020/10/15 Python
HTML5 CSS3打造相册效果附源码下载
2014/06/16 HTML / CSS
浅谈HTML5 &amp; CSS3的新交互特性
2016/07/19 HTML / CSS
Yves Rocher捷克官方网站:植物化妆品的创造者
2019/07/31 全球购物
ANINE BING官方网站:奢华的衣橱基本款和时尚永恒的单品
2019/11/26 全球购物
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
软件缺陷的分类都有哪些
2014/08/22 面试题
药学专业毕业生求职信
2013/10/20 职场文书
校园达人秀策划书
2014/01/12 职场文书
家长对孩子评语
2014/01/30 职场文书
护理目标管理责任书
2014/07/25 职场文书
社区助残日活动总结
2014/08/29 职场文书