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插件Tabs实现过程
Jul 06 Javascript
js修改table中Td的值(定义td的单击事件)
Jan 10 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
Oct 01 Javascript
构造函数+原型模式构造js自定义对象(最通用)
May 12 Javascript
JavaScript返回0-1之间随机数的方法
Apr 06 Javascript
javascript封装 Cookie 应用接口
Aug 07 Javascript
js实现延时加载Flash的方法
Nov 26 Javascript
js实现仿微博滚动显示信息的效果
Dec 21 Javascript
vue项目常用组件和框架结构介绍
Dec 24 Javascript
详解小程序设置缓存并且不覆盖原有数据
Apr 15 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
May 18 Javascript
node+vue实现文件上传功能
May 28 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+java实现自动新闻滚动窗口
2006/10/09 PHP
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
2009/08/07 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
2014/09/16 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
2015/12/14 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
2019/04/10 PHP
dojo 之基础篇
2007/03/24 Javascript
jQuery插件 tabBox实现代码
2010/02/09 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
用js替换除数字与逗号以外的所有字符的代码
2014/06/07 Javascript
Javascript优化技巧之短路表达式详细介绍
2015/03/27 Javascript
将页面table内容与样式另存成excel文件的方法
2015/08/05 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
2016/08/02 Javascript
微信小程序 富文本转文本实例详解
2016/10/24 Javascript
常用JS图片滚动(无缝、平滑、上下左右滚动)代码大全(推荐)
2016/12/20 Javascript
JS 实现计算器详解及实例代码(一)
2017/01/08 Javascript
JavaScript canvas实现围绕旋转动画
2017/11/18 Javascript
使用express+multer实现node中的图片上传功能
2018/02/02 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
2019/09/10 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
k8s node节点重新加入master集群的实现
2021/02/22 Javascript
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
python获取文件扩展名的方法
2015/07/06 Python
python使用tkinter实现简单计算器
2018/01/30 Python
手把手教你如何安装Pycharm(详细图文教程)
2018/11/28 Python
Python使用scrapy爬取阳光热线问政平台过程解析
2019/08/14 Python
使用Tkinter制作信息提示框
2020/02/18 Python
使用PyCharm安装pytest及requests的问题
2020/07/31 Python
巴黎一票通:The Paris Pass
2018/02/10 全球购物
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
高校毕业生登记表自我鉴定
2013/11/03 职场文书
超市端午节活动方案
2014/01/23 职场文书
党的群众路线教育实践活动个人对照检查材料(乡镇)
2014/11/05 职场文书
Golang 切片(Slice)实现增删改查
2022/04/22 Golang