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的自定义鼠标提示效果 jquery.toolTip
Nov 14 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
May 23 Javascript
javascript从image转换为base64位编码的String
Jul 29 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
Dec 26 Javascript
详解AngularJS中的作用域
Jun 17 Javascript
3个可以改善用户体验的AngularJS指令介绍
Jun 18 Javascript
JavaScript与java语言有什么不同
Sep 22 Javascript
jQuery解析返回的xml和json方法详解
Jan 05 Javascript
JS实现图片预览的两种方式
Jun 27 Javascript
什么是Vue.js框架 为什么选择它?
Oct 17 Javascript
vue引用js文件的多种方式(推荐)
May 17 Javascript
基于JS实现数字动态变化显示效果附源码
Jul 18 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/27 PHP
ThinkPHP实现二级循环读取的方法
2014/11/03 PHP
WordPress中调试缩略图的相关PHP函数使用解析
2016/01/07 PHP
laravel5.2实现区分前后台用户登录的方法
2017/01/11 PHP
TP5多入口设置实例讲解
2020/12/15 PHP
JQuery 国际象棋棋盘 实现代码
2009/06/26 Javascript
JS在IE和FF下attachEvent,addEventListener学习笔记
2009/11/26 Javascript
Ext 今日学习总结
2010/09/19 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
2012/09/14 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
2014/08/04 Javascript
无刷新上传文件并返回自定义值
2015/06/11 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
2015/07/28 Javascript
基于Vue如何封装分页组件
2016/12/16 Javascript
AngularJS表格添加序号的方法
2017/03/03 Javascript
详解vue-cli + webpack 多页面实例配置优化方法
2017/07/13 Javascript
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
微信小程序实现图片上传
2019/05/23 Javascript
webpack3升级到webpack4遇到问题总结
2019/09/30 Javascript
vue添加自定义右键菜单的完整实例
2020/12/08 Vue.js
pytorch cnn 识别手写的字实现自建图片数据
2018/05/20 Python
Python对数据进行插值和下采样的方法
2018/07/03 Python
python正则爬取某段子网站前20页段子(request库)过程解析
2019/08/10 Python
Pytorch转onnx、torchscript方式
2020/05/25 Python
css3 利用transform打造走动的2D时钟
2020/10/20 HTML / CSS
Sofft鞋官网:世界知名鞋类品牌
2017/03/28 全球购物
乌克兰的第一家手表店:Deka
2020/03/05 全球购物
中专生自我鉴定
2013/12/17 职场文书
预备党员表决心书
2014/03/11 职场文书
日化店促销方案
2014/03/26 职场文书
法人代表任命书范本
2014/06/05 职场文书
竞选班干部演讲稿500字
2014/08/20 职场文书
高中学生会竞选演讲稿
2014/08/25 职场文书
2015年教学副校长工作总结
2015/07/22 职场文书
一文了解Java动态代理的原理及实现
2022/07/07 Java/Android