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的实现回车键Enter切换焦点
Sep 14 Javascript
javascript的console.log()用法小结
May 31 Javascript
JQuery 中几个类选择器的简单使用介绍
Mar 14 Javascript
jquery复选框全选/取消示例
Dec 30 Javascript
jQuery分别获取选中的复选框值的示例
Jun 17 Javascript
jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
Jun 12 Javascript
js倒计时简单实现代码
Aug 11 Javascript
AngularJS过滤器filter用法总结
Dec 13 Javascript
vue-cli脚手架-bulid下的配置文件
Mar 27 Javascript
JS正则表达式封装与使用操作示例
May 15 Javascript
wepy--用vantUI 实现上弹列表并选择相应的值操作
Nov 03 Javascript
微信小程序实现下拉加载更多商品
Dec 29 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
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
php header功能的使用
2013/10/28 PHP
PHP中通过fopen()函数访问远程文件示例
2014/11/18 PHP
php中return的用法实例分析
2015/02/28 PHP
yii2中添加验证码的实现方法
2016/01/09 PHP
PHP+JQuery+Ajax实现分页方法详解
2016/08/06 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
2020/02/07 PHP
javascript中的delete使用详解
2013/04/11 Javascript
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
ajax图片上传,图片异步上传,更新实例
2016/12/30 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
bootstrap常用组件之头部导航实现代码
2017/04/20 Javascript
详解vue数据渲染出现闪烁问题
2017/06/29 Javascript
你有必要知道的10个JavaScript难点
2017/07/25 Javascript
深入理解移动前端开发之viewport
2018/10/19 Javascript
js字符串处理之绝妙的代码
2019/04/05 Javascript
解决vue init webpack 下载依赖卡住不动的问题
2020/11/09 Javascript
在vue中给后台接口传的值为数组的格式代码
2020/11/12 Javascript
[52:03]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第三场 1月31日
2021/03/11 DOTA
横向对比分析Python解析XML的四种方式
2016/03/30 Python
Python+pandas计算数据相关系数的实例
2018/07/03 Python
python排序函数sort()与sorted()的区别
2018/09/18 Python
Python参数传递实现过程及原理详解
2020/05/14 Python
keras小技巧——获取某一个网络层的输出方式
2020/05/23 Python
python中函数返回多个结果的实例方法
2020/12/16 Python
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
大学生毕业求职自荐书范文
2014/02/04 职场文书
党的群众路线教育实践活动心得体会900字
2014/03/07 职场文书
英语专业自荐书
2014/06/13 职场文书
机关作风整顿个人剖析材料
2014/10/06 职场文书
汽车转让协议书
2015/01/29 职场文书
矛盾论读书笔记
2015/06/29 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL
详细谈谈MYSQL中的COLLATE是什么
2021/06/11 MySQL