全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

原生js jquery ajax请求以及jsonp的调用方法

ajax

是用来处理前后端交互的技术,可以改善用户体验,其本质是

XMLHttpRequest,异步访问服务器并发送请求数据,服务器返回响应的数据,以页面无刷新的效果改变页面中的局部内容

同步:任务一个一个的执行,只有前面的任务执行完才会执行下一个任务,如果前面的任务是耗时操作,则需要一直等待

异步:多条任务并发执行,也就是一个任务的开启,不需要等待其他任务执行结束,效率较高

ajax的语言载体是JavaScript,最大的特点是页面不刷新

1、获取ajax对象

主流浏览器获取方式:火狐、谷歌、safari、opera、IE7以上

var xhr = new XMLHttpRequest();

IE7以下

var xhr = new ActiveXObject("microsoft.XMLHttp");

2、发起请求

创建请求:xhr.open(请求方式get/post,请求地址);

发送请求:xhr.send(post请求数据/get设置null);

3、接收数据

ajax可以接收字符串、html标签、css样式、xml、json

通过监听onreadystatechange事件。来接收ajax状态的变化(readyState属性)

readyState:

-0:表示未初始化,对象已经建立,但是没调用onen方法

-1:对象已建立,但是未调用send方法

-2:发送数据,已调用send方法,但当前状态及http头未知

-3:已接收部分数据,但是数据不全

-4:数据接收完毕

4、常用属性和方法

属性:

-responseText:将响应的数据作为字符串返回,只读

-responseXML:将响应的数据格式化为xml格式并返回,只读

-status:当前请求的http状态码

方法:

-open

-send

-setRequestHeader:设置请求头

get请求

url以字符串形式传递数据,对中文、&、=需要特殊处理,可以使用encodeURIComponent()方法进行编码,编码后的内容在服务端不需要解码,可以正常接收,get多个参数之间用&连接,参数名和参数值用=连接

var xhr = null;
      //获取ajax对象
      if (window.XMLHttpRequest) {
        xhr = new XMLHttpRequest();
      } else{
        xhr = new ActiveXObject("Microsoft.XMLHttp");
      }
      xhr.onreadystatechange = function(){
        console.log(xhr.readyState);
        switch (xhr.readyState){
          case 0:
          console.log("尚未初始化");
          break;
          case 1:
          console.log("尚未建立连接");
          break;
          case 2:
          console.log("正在发送数据");
          break;
          case 3:
          console.log("正在接受数据");
          break;
          case 4:
          console.log("数据接收完成");
          //处理接到的数据,这下面是重点
          var text = xhr.responseText;
          break;
        }
      }
      //创建请求
      xhr.open('get','http://localhost/PHP/ajax01.php?sel=4');
      xhr.send(null);

post请求

-给服务器传参数,需要将参数写在send方法中:参数1=值1&参数2=值2...

-需要调用setRequestHeader()方法,把传送的参数封装成xml格式(模仿form表单提交数据:application/x-www-form-urlencoded);

-传递的中文、特殊符号都需要编码

var xhr = new XMLHttpRequest();
      xhr.onreadystatechange = function(){
        if (xhr.readyState == 4) {
          console.log("登陆成功:"+xhr.responseText);
        }
      }
      //等到输入的用户名和密码,
      var uname = "uname="+ encodeURIComponent(document.getElementById("uname").value);
      var pwd = "pwd="+encodeURIComponent(document.getElementById("pwd").value);
      xhr.open("post","http://localhos/PHP/ajax01.php");
      //设置头信息,需要在open方法之后设置
      xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
      //设置参数
      var str = uname+"&"+pwd;
      xhr.send(str);

get/post的区别:

-请求数据量,get最多2k,post没有限制

-安全方面,post更安全

-传递数据的形式:get是url和参数一起发送,post是参数单独发送

jquery ajax请求

//AJAX
    $.ajax({
      url:"data.txt",
      type:'get',
      dataType:'json',
      data:null,
      async:true,
      timeout:1000,//设定超时时间 一般都是3000毫秒
      cache:false,//设定GET请求的时候不走 缓存数据,原理其实就是在URL末尾加随机数,默认是true
      success:function(data){
        console.log(data)
      },
    })
    //JSONP
    //JSONP都是GET和异步请求的,不存在其他的请求方式和同步请求,而且jquery默认会给JSONP的请求清楚缓存
    $.ajax({
      url:"http://matchweb.sports.qq.com/kbs/calendar?columnId=100000",
      type:'get',
      dataType:'jsonp',
      jsonpCallback:"fn",//自定义传递给服务器的函数名,而不是使用jquery自动生成的
      jsonp:'cb',//把传递函数名的那个形参callBack变为cb
      success:function(data){
        console.log(data)
      },
    })

以上这篇原生js jquery ajax请求以及jsonp的调用方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# 原生js  # ajax  # jsonp  # 原生Ajax 和jQuery Ajax的区别示例分析  # 原生Aajax 和jQuery Ajax 写法个人总结  # 原生js仿jquery实现对Ajax的封装  # 原生和jQuery的ajax用法详解  # 简单聊一聊原生Ajax与JQuery Ajax  # 都是  # 不需要  # 给大家  # 是一个  # 随机数  # 也就  # 多个  # 最多  # 才会  # 其他的  # 较高  # 希望能  # 不存在  # 自定义  # 火狐  # 这下  # 可以使用  # 会给  # 这篇  # 表单 


相关文章: javascript基本数据类型及类型检测常用方法小结  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  微信推文制作网站有哪些,怎么做微信推文,急?  公司门户网站制作流程,华为官网怎么做?  七夕网站制作视频,七夕大促活动怎么报名?  如何配置WinSCP新建站点的密钥验证步骤?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  网站专业制作公司有哪些,做一个公司网站要多少钱?  已有域名如何免费搭建网站?  高防服务器如何保障网站安全无虞?  Python路径拼接规范_跨平台处理说明【指导】  香港服务器WordPress建站指南:SEO优化与高效部署策略  常州企业网站制作公司,全国继续教育网怎么登录?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何快速搭建响应式可视化网站?  制作门户网站的参考文献在哪,小说网站怎么建立?  高防服务器租用首荐平台,企业级优惠套餐快速部署  MySQL查询结果复制到新表的方法(更新、插入)  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  C#如何在一个XML文件中查找并替换文本内容  存储型VPS适合搭建中小型网站吗?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  如何在阿里云购买域名并搭建网站?  建站10G流量真的够用吗?如何应对访问高峰?  历史网站制作软件,华为如何找回被删除的网站?  建站VPS能否同时实现高效与安全翻墙?  北京网站制作公司哪家好一点,北京租房网站有哪些?  建站之星图片链接生成指南:自助建站与智能设计教程  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  如何在建站宝盒中设置产品搜索功能?  如何使用Golang安装API文档生成工具_快速生成接口文档  企业网站制作公司网页,推荐几家专业的天津网站制作公司?  已有域名能否直接搭建网站?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  如何快速生成专业多端适配建站电话?  seo网站制作优化,网站SEO优化步骤有哪些?  宝塔Windows建站如何避免显示默认IIS页面?  如何通过二级域名建站提升品牌影响力?  如何通过VPS建站实现广告与增值服务盈利?  建站之星安装后界面空白如何解决?  如何获取PHP WAP自助建站系统源码?  孙琪峥织梦建站教程如何优化数据库安全?  如何通过IIS搭建网站并配置访问权限?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何解决VPS建站LNMP环境配置常见问题?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  如何在建站主机中优化服务器配置? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。