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 相关文章推荐
测试JavaScript字符串处理性能的代码
Dec 07 Javascript
用jquery和json从后台获得数据集的代码
Nov 07 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
Jan 04 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
Jan 03 Javascript
iframe父页面获取子页面参数的方法
Feb 21 Javascript
JavaScript中return false的用法
Mar 12 Javascript
js实现简单锁屏功能实例
May 27 Javascript
JavaScript数组的一些奇葩行为
Jan 25 Javascript
AngularJs 常用的过滤器
May 15 Javascript
基于Vue实例对象的数据选项
Aug 09 Javascript
vue写一个组件
Apr 09 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
Feb 06 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 批量更新网页内容实现代码
2010/01/05 PHP
php变量范围介绍
2012/10/15 PHP
php返回相对时间(如:20分钟前,3天前)的方法
2015/04/14 PHP
Laravel5.7 数据库操作迁移的实现方法
2019/04/12 PHP
关于javascript DOM事件模型的两件事
2010/07/22 Javascript
利用div+jquery自定义滚动条样式的2种方法
2013/07/18 Javascript
从QQ网站中提取的纯JS省市区三级联动菜单
2013/12/25 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
使用AngularJS创建自定义的过滤器的方法
2015/06/18 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
JS仿hao123导航页面图片轮播效果
2016/09/01 Javascript
写给小白看的JavaScript异步
2017/11/29 Javascript
vue的全局提示框组件实例代码
2018/02/26 Javascript
JavaScript中创建原子的方法总结
2018/08/26 Javascript
Vue2.0学习系列之项目上线的方法步骤(图文)
2018/09/25 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
小程序使用分包的示例代码
2020/03/23 Javascript
Vue 3自定义指令开发的相关总结
2021/01/29 Vue.js
[01:03:33]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python共享引用(多个变量引用)示例代码
2013/12/04 Python
Python collections模块实例讲解
2014/04/07 Python
Python中用Decorator来简化元编程的教程
2015/04/13 Python
Python如何获取系统iops示例代码
2016/09/06 Python
详解pyenv下使用python matplotlib模块的问题解决
2018/11/29 Python
django 类视图的使用方法详解
2019/07/24 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
2019/09/04 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
2020/04/26 Python
用CSS3实现无限循环的无缝滚动的示例代码
2017/11/01 HTML / CSS
献爱心倡议书
2014/04/14 职场文书
企业办公室主任岗位职责
2015/04/01 职场文书
2015年乡镇纪委工作总结
2015/05/26 职场文书
如何写通讯稿
2015/07/22 职场文书
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android
浅谈克隆 JavaScript
2021/11/02 Javascript
Python实现将多张图片合成MP4视频并加入背景音乐
2022/04/28 Python