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 相关文章推荐
判断iframe是否加载完成的完美方法
Jan 07 Javascript
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
Jul 04 Javascript
jQuery实现宽屏图片轮播实例教程
Nov 24 Javascript
深入浅析Node.js 事件循环
Dec 20 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
Jul 09 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
Dec 22 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
Jan 27 Javascript
layer.alert自定义关闭回调事件的方法
Sep 27 Javascript
vue把输入框的内容添加到页面的实例讲解
Nov 11 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
Nov 16 Javascript
24个ES6方法解决JS实际开发问题(小结)
May 31 Javascript
element tree树形组件回显数据问题解决
Aug 14 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
smarty的section嵌套循环用法示例
2016/05/28 PHP
PHP数据库表操作的封装类及用法实例详解
2016/07/12 PHP
解析Jquery的LigerUI如何实现文件上传
2013/07/09 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
2014/01/09 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
2014/12/19 Javascript
Javascript基础教程之数据类型 (字符串 String)
2015/01/18 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
2015/06/01 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
原生js图片轮播效果实现代码
2016/10/19 Javascript
Bootstrap 模态框实例插件案例分析
2016/12/28 Javascript
移动端点击态处理的三种实现方式
2017/01/12 Javascript
vue webuploader 文件上传组件开发
2017/09/23 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
2018/12/20 Javascript
vscode中eslint插件的配置(prettier配置无效)
2019/09/10 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
vue项目中使用多选框的实例代码
2020/07/22 Javascript
详解python发送各类邮件的主要方法
2016/12/22 Python
Python实现将Excel转换成为image的方法
2018/10/23 Python
python实现按行分割文件
2019/07/22 Python
Python爬虫 urllib2的使用方法详解
2019/09/23 Python
pyqt5中动画的使用详解
2020/04/01 Python
django template实现定义临时变量,自定义赋值、自增实例
2020/07/12 Python
Python‘==‘ 及 ‘is‘相关原理解析
2020/09/05 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
意大利和国际奢侈品牌购物网站:Suitnegozi.com
2021/01/15 全球购物
4S店售后客服自我评价
2014/04/09 职场文书
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
弘扬焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
个人欠条范本
2015/07/03 职场文书
2016党员干部廉洁自律心得体会
2016/01/13 职场文书
原来实习报告是这样写的呀!
2019/07/03 职场文书
研究生学习计划书应该怎么写?
2019/09/10 职场文书
解决Python保存文件名太长OSError: [Errno 36] File name too long
2022/05/11 Python