IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> (JS)Javascript之Ajax -> 正文阅读

[JavaScript知识库](JS)Javascript之Ajax

标准浏览器创建Ajax

var xhr=new XMLHttpRequest();

早期IE创建Ajax

var xhr =new ActiveXObject(“Microsoft.XMLHTTP);

准备发送
xhr.open():接受三个参数,第一个参数为提交方式,第二个参数表示请求地址,第三个参数表示异步或者同步,true为异步,false为同步。
由于浏览器问题,IE浏览器在传递参数时要用encodeURI()编码
如果是get请求,请求参数必须在URL中传递
如果为POST请求,请求参数应该在xhr.send()中,并且不需要转码
使用POST请求,需要设置响应头

xhr.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded”)

发送动作
xhr.send():如果提交方式为get,则需要添加null参数
指定回调函数

	xhr.onreadystatechange=function(){
		if(xhr.readyState==4){
			if(xhr.status==200){
		// 返回文本
			}
		}
	}

readyState状态表示
0(未初始化) 对象已建立,但尚未初始化(尚未调用open方法)
1(初始化) 对象已建立,尚未调用send方法
2(发送数据) send方法已调用,但是当前状态以及http头未知
3(数据传送中) 已接收部分数据,因为响应以及http头不全,这时通过respenseBody和responseText获取部分数据会出现错误
4(完成) 数据接受完毕,此时可以通过responseBody和responseText获取完整的回应数据
status状态表示
100 continue
101 Switching protocols
200 ok
201 Created
202 Accepted
203 Non-Authoritative Infomation
204 No Content
205 Reset Content
206 Partial Content
300 Multiple Choices
301 Moved Permanently
302 Found
303 See Other
304 Not Modified
305 Use Proxy
307 Temporary Redirect
400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Alliwed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
409 Conflict
410 Gone
411 Length Required
412 Precondition Failed
413 Request Entity Too Large
414 Request-URI Too Long
415 Unsupported Media Type
416 Requested Range Not Suitable
417 Expectation Failed
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported
responseText:将响应信息作为字符串返回
responseXML:将响应信息格式化为Xml Document对象返回
XML创建

<?xml version=”1.0” edcoding=”utf-8”?>

用来传递少量数据
php开发xml
设置响应头,保证浏览器将相应内容解析为xml格式
header(“Content-Type:text/xml;”);
后面写xml内容
json文件
数据格式
{
“obj1”:”233”,
“obj2”:”333”
}
json和js对象的区别
1.json数据没有变量
2.json形式的数据结尾没有分号
3.json数据中的键必须用双引号包住
解析json
json.parse():将字符串解析为对象
json.stringify():将对象转换为字符串
eval():将字符串解析为对象。eval(“(”+data+”)”)
PHP开发json
json_encode():将数组转为json

Ajax跨域
同源策略
1.同源策略是浏览器的一种安全策略,所谓同源指的是请求URL地址中的协议、域名和端口都相同,只要其中之一不相同就是跨域
2.同源策略主要为了保证浏览器的安全性
3.在同源策略下,浏览器不允许Ajax获取服务器数据
跨域解决方案
1. jsonp
2. document.domain+iframe
3. location.hash+iframe
4. window.name+iframe
5. window.postMessage
6. flash等第三方插件
jsonp获取数据

  1. 静态script标签的src属性进行跨域请求
<script type=”text/javascript” src=URL></script>

缺点

  1. 使用此方法不能使用异步加载
  2. 不方便参数传递
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-07-04 22:45:33  更:2022-07-04 22:45:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/11 10:51:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码