ajax异步 —— javascript
目录
ajax是什么
作用:不必重新加载整个页面,更新部分页面内容。
大概使用过程:通过后台提供的数据接口,ajax获取数据,动态修改视图层。
原生ajax
将ajax请求封装成一个函数,可以传参,选择请求类型,以及成功后的回调函数。
/*
url: 请求地址,
data: 请求参数,
method: 请求类型,
success: 请求成功后的回调函数
*/
function ajax_method(url, data, method, success){
var ajax;
if (window.XMLHttpRequest) {
// IE7+, Firefox, Chrome, Opera, Safari
ajax = new new XMLHttpRequest();
}else {
// IE6, IE5
ajax = new ActiveXObject("Microsoft.XMLHTTP");
} if (method == "get") {
if (data) {
// 有数据
url += ("?"+data);
}
ajax.open(method, url);
ajax.send();
}else{
// post
ajax.open(method, url);
// post请求要加上的请求头
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
if (data) {
ajax.send(data);
}else{
ajax.send();
}
} ajax.onreadystatechange = function(){
console.log("可以1");
// 0: 请求未初始化
// 1: 服务器连接已建立
// 2: 请求已接收
// 3: 请求处理中
// 4: 请求已完成,且响应已就绪 // 200: 请求处理成功
// 404: 未找到页面
if (ajax.readyState == 4 && ajax.status == 200) {
console.log("请求成功");
success(ajax.responseText);
}else{
console.log("请求失败");
}
}
}
调用:
ajax_method("./test.php", {"param1": "val1"}, "post", function(data){
console("请求拿到的数据:",data);
// 之后将拿到的数据渲染视图层
})
jquery ajax
使用jqury,可以便捷的发送ajax请求,需要引入juery.js
$.ajax({
url: "./test.php",
method: "post",
dataType: "json", // 服务器返回数据类型
data: {
"param1": "val1", // 请求参数
},
success: function(data){
console("请求拿到的数据:",data);
// 之后将拿到的数据渲染视图层
},
error: function(){
alert('请求失败');
}
});
ajax跨域
为什么有跨域问题?
“同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。”
同源:相同协议,域名,端口号。
所以当ajax请求的地址,存在协议,域名,端口号不同时,则存在跨域问题,浏览器会报错。
解决跨域的方法,可以看下一篇文章。
ajax异步 —— javascript的更多相关文章
- Ajax异步验证登陆或者注册
首先介绍一个不错的学习Ajax的中文网站:http://www.w3school.com.cn/ajax/index.asp AJAX = 异步 JavaScript 和 XML.详细介绍见上面的网址 ...
- Scrapy爬虫框架教程(四)-- 抓取AJAX异步加载网页
欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章 sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction ...
- How to make an HTTP request 异步 JavaScript 和 XML
https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started In order to make an HTTP request to th ...
- js(三) ajax异步局部刷新技术底层代码实现
ajax 异步 javaScript and xml 开发五步骤: 1. 创建对象 XMLHttpRequest(chrome,firefox) ie... jquery 2. 找到连接, http的 ...
- 【JavaScript】AJAX总结(异步JavaScript和XML)
AJAX介绍 通过 AJAX,你可以创建更好.更快以及更友好的 WEB 应用程序. AJAX 基于 JavaScript 和 JavaScript的XMLHttpRequest对象. AJAX 应用程 ...
- [转] 为什么javascript是单线程的却能让AJAX异步调用?
为什么JavaScript是单线程的却能让AJAX异步发送和回调请求,还有setTimeout也看起来像是多线程的? function foo() { console.log( 'first' ); ...
- ajax异步请求
做前端开发的朋友对于ajax异步更新一定印象深刻,作为刚入坑的小白,今天就和大家一起聊聊关于ajax异步请求的那点事.既然是ajax就少不了jQuery的知识,推荐大家访问www.w3school.c ...
- ASP.NET知识总结(8.AJAX异步)
AJAX:”Asynchronous JavaScript and XML” 中文意思:异步JavaScript和XML. 指一种创建交互式网页应用的网页开发技术. 不是指一种单一的技术,而是有机 ...
- 淘宝购物车页面 智能搜索框Ajax异步加载数据
如果有朋友对本篇文章的一些知识点不了解的话,可以先阅读此篇文章.在这篇文章中,我大概介绍了一下构建淘宝购物车页面需要的基础知识. 这篇文章主要探讨的是智能搜索框Ajax异步加载数据.jQuery的社区 ...
随机推荐
- servlet3.0无web.xml
大家应该都已经知道spring 3.1对无web.xml式基于代码配置的servlet3.0应用.通过spring的api或是网络上高手们的博文,也一定很快就学会并且加到自己的应用中去了.PS:如果还 ...
- Java密码处理
- Orchestrator MySQL主库故障切换的几种类型
Orchestrator 对MySQL主库的故障切换分为自动切换和手动切换. 手动切换又分为recover.force-master-failover.force-master-takeover以及g ...
- leetcode 34在排序数组中查找元素的第一个和最后一个位置
class Solution { public: vector<int> searchRange(vector<int>& nums, int target) { ve ...
- 手动清空微信PC客户端数据
微信PC客户端,用久了之后,会产生大量数据,包括聊天记录.聊天图片.视频等等,非常占存储空间,除非很重要的聊天记录或文件,建议额外保存,其他的可以手动删掉就好,可以节省存储空间. 1.找到[C:\Us ...
- nginx不记录指定文件类型日志
1.指定记录文件日志记录的内容. vim /usr/local/nginx/conf/nginx.conf如下部分: log_format dd '$remote_addr $http_x_forwa ...
- 报错:Original error: Could not proxy command to remote server. Original error: Error: read ECONNRESET
问题:Appium的android真机启动手机时,会遇到以下问题: An unknown server-side error occurred while processing the command ...
- Java List集合 遍历 四种方式(包含 Lambda 表达式遍历)
示例代码如下: package com.miracle.luna.lambda; import java.util.ArrayList; import java.util.List; /** * @A ...
- SAS中的聚类分析方法总结
SAS中的聚类分析方法总结 说起聚类分析,相信很多人并不陌生.这篇原创博客我想简单说一下我所理解的聚类分析,欢迎各位高手不吝赐教和拍砖. 按照正常的思路,我大概会说如下几个问题: 1. 什么是 ...
- Ubantu下部署Flask项目安装与配置
1.nginx 安装 sudo apt-get install nginx 启动,停止和重启 sudo /etc/init.d/nginx start sudo /etc/init.d/nginx s ...