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 27 Javascript
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
Jun 28 Javascript
JavaScript和ActionScript的交互实现代码
Aug 01 Javascript
浅析javascript的间隔调用和延时调用
Nov 12 Javascript
js判断浏览器版本以及浏览器内核的方法
Jan 20 Javascript
Javascript毫秒数用法实例
Feb 05 Javascript
jQuery实现防止提交按钮被双击的方法
Mar 24 Javascript
浅析Jquery操作select
Dec 13 Javascript
vue项目优化之通过keep-alive数据缓存的方法
Dec 11 Javascript
如何能分清npm cnpm npx nvm
Jan 17 Javascript
js实现延迟加载的几种方法详解
Jan 19 Javascript
解决vue init webpack 下载依赖卡住不动的问题
Nov 09 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/05/12 PHP
PHP分页详细讲解(有实例)
2013/10/30 PHP
php抽象类使用要点与注意事项分析
2015/02/09 PHP
如何重写Laravel异常处理类详解
2020/12/20 PHP
JQuery控制Radio选中方法分析
2015/05/29 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
2017/11/22 Javascript
Nodejs对postgresql基本操作的封装方法
2019/02/20 NodeJs
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
2019/09/25 Javascript
vue+element-ui表格封装tag标签使用插槽
2020/06/18 Javascript
vue3.0生命周期的示例代码
2020/09/24 Javascript
在Apache服务器上同时运行多个Django程序的方法
2015/07/22 Python
解决PyCharm的Python.exe已经停止工作的问题
2018/11/29 Python
对python 命令的-u参数详解
2018/12/03 Python
Python爬虫实战之12306抢票开源
2019/01/24 Python
打包python 加icon 去掉cmd黑窗口方法
2019/06/24 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
详解Django将秒转换为xx天xx时xx分
2019/09/27 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
Python2.6版本pip安装步骤解析
2020/08/17 Python
python自动生成证件号的方法示例
2021/01/14 Python
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
ASOS亚洲:ASOS Asia
2018/03/04 全球购物
物业工作计划书
2014/01/10 职场文书
自我鉴定三原则
2014/01/13 职场文书
技术总监管理职责范本
2014/03/06 职场文书
祖国在我心中演讲稿600字
2014/05/04 职场文书
端午节演讲稿
2014/05/23 职场文书
大学优秀班集体申报材料
2014/05/23 职场文书
水电维修专业推荐信
2014/09/06 职场文书
个人房屋买卖协议书(范本)
2014/10/04 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
安全承诺书
2015/01/19 职场文书
幼师小班个人总结
2015/02/12 职场文书
python实现批量提取指定文件夹下同类型文件
2021/04/05 Python
使用Cargo工具高效创建Rust项目
2022/08/14 Javascript