原生js jquery ajax请求以及jsonp的调用方法
发布时间 - 2026-01-11 02:38:19 点击率:次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
# 都是
# 不需要
# 给大家
# 是一个
# 随机数
# 也就
# 多个
# 最多
# 才会
# 其他的
# 较高
# 希望能
# 不存在
# 自定义
# 火狐
# 这下
# 可以使用
# 会给
# 这篇
# 表单
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
JS实现鼠标移上去显示图片或微信二维码
javascript基于原型链的继承及call和apply函数用法分析
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
Laravel的.env文件有什么用_Laravel环境变量配置与管理详解
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
高端云建站费用究竟需要多少预算?
详解jQuery中基本的动画方法
专业商城网站制作公司有哪些,pi商城官网是哪个?
如何用美橙互联一键搭建多站合一网站?
Laravel如何实现用户注册和登录?(Auth脚手架指南)
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
英语简历制作免费网站推荐,如何将简历翻译成英文?
如何在阿里云域名上完成建站全流程?
如何用wdcp快速搭建高效网站?
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
Laravel如何升级到最新版本?(升级指南和步骤)
如何实现javascript表单验证_正则表达式有哪些实用技巧
微信小程序 input输入框控件详解及实例(多种示例)
如何登录建站主机?访问步骤全解析
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
nodejs redis 发布订阅机制封装实现方法及实例代码
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
魔方云NAT建站如何实现端口转发?
黑客如何利用漏洞与弱口令入侵网站服务器?
深入理解Android中的xmlns:tools属性
百度浏览器如何管理插件 百度浏览器插件管理方法
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
,怎么在广州志愿者网站注册?
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
独立制作一个网站多少钱,建立网站需要花多少钱?
javascript读取文本节点方法小结
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
Android使用GridView实现日历的简单功能
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
🚀拖拽式CMS建站能否实现高效与个性化并存?
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
如何在宝塔面板创建新站点?
如何在腾讯云服务器上快速搭建个人网站?
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
Java垃圾回收器的方法和原理总结
Android 常见的图片加载框架详细介绍
香港服务器建站指南:免备案优势与SEO优化技巧全解析

