目录

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请求的地址,存在协议,域名,端口号不同时,则存在跨域问题,浏览器会报错。

解决跨域的方法,可以看下一篇文章。

jsonp —— javascript

ajax异步 —— javascript的更多相关文章

  1. Ajax异步验证登陆或者注册

    首先介绍一个不错的学习Ajax的中文网站:http://www.w3school.com.cn/ajax/index.asp AJAX = 异步 JavaScript 和 XML.详细介绍见上面的网址 ...

  2. Scrapy爬虫框架教程(四)-- 抓取AJAX异步加载网页

    欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章 sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction ...

  3. 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 ...

  4. js(三) ajax异步局部刷新技术底层代码实现

    ajax 异步 javaScript and xml 开发五步骤: 1. 创建对象 XMLHttpRequest(chrome,firefox) ie... jquery 2. 找到连接, http的 ...

  5. 【JavaScript】AJAX总结(异步JavaScript和XML)

    AJAX介绍 通过 AJAX,你可以创建更好.更快以及更友好的 WEB 应用程序. AJAX 基于 JavaScript 和 JavaScript的XMLHttpRequest对象. AJAX 应用程 ...

  6. [转] 为什么javascript是单线程的却能让AJAX异步调用?

    为什么JavaScript是单线程的却能让AJAX异步发送和回调请求,还有setTimeout也看起来像是多线程的? function foo() { console.log( 'first' ); ...

  7. ajax异步请求

    做前端开发的朋友对于ajax异步更新一定印象深刻,作为刚入坑的小白,今天就和大家一起聊聊关于ajax异步请求的那点事.既然是ajax就少不了jQuery的知识,推荐大家访问www.w3school.c ...

  8. ASP.NET知识总结(8.AJAX异步)

    AJAX:”Asynchronous JavaScript and XML” 中文意思:异步JavaScript和XML. 指一种创建交互式网页应用的网页开发技术.   不是指一种单一的技术,而是有机 ...

  9. 淘宝购物车页面 智能搜索框Ajax异步加载数据

    如果有朋友对本篇文章的一些知识点不了解的话,可以先阅读此篇文章.在这篇文章中,我大概介绍了一下构建淘宝购物车页面需要的基础知识. 这篇文章主要探讨的是智能搜索框Ajax异步加载数据.jQuery的社区 ...

随机推荐

  1. 项目配置 xml文件时 报错提示(The reference to entity "useSSL" must end with the ';' delimiter.)

    这次在配置xml文件时,出现错误提示( The reference to entity “useSSL” must end with the ‘;’ delimiter.) 报错行为 <prop ...

  2. 191106DjangoORM之admin数据库管理组件

    一.admin数据库管理系统的使用 创建用户 >python manage.py createsuperuser 访问http://127.0.0.1/admin/ app/admin.py 注 ...

  3. web长时间不激活 终止用户回话

    参考资料: http://web.jobbole.com/89072/ http://www.cnblogs.com/1175429393wljblog/p/5570606.html http://w ...

  4. 【Spark机器学习速成宝典】模型篇06随机森林【Random Forests】(Python版)

    目录 随机森林原理 随机森林代码(Spark Python) 随机森林原理 参考:http://www.cnblogs.com/itmorn/p/8269334.html 返回目录 随机森林代码(Sp ...

  5. leetcode-easy-dynamic-53 Maximum Subarray

    mycode  66.85% class Solution(object): def maxSubArray(self, nums): """ :type nums: L ...

  6. Vue路由器的简单实现

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  7. react-native 环境安装常见问题

    npm install react-native-cli -g react-native init yourproject npm install react-native run-ios 问题1:卡 ...

  8. Python_基础知识储备

    目录 目录 前言 初识Python 解析型与编译型 OOP与POP 相关概念1 Python的解释器 Python程序设计的思想 Python的编程风格 最后 前言 前面的博文从记录了如何Setup ...

  9. Prometheus存储模型分析

    Prometheus是时下最为流行的开源监控解决方案,我们可以很轻松地以Prometheus为核心快速构建一套包含监控指标的抓取,存储,查询以及告警的完整监控系统.单个的Prometheus实例就能实 ...

  10. 报错:java.lang.NoClassDefFoundError: com/google/inject/Injector

    使用testng report,导入jar包:reportng.jar和velocity-dep-1.4.jar后,执行脚本,报错如下: 缺少依赖的jar包:guice-4.0.jar 导入依赖的ja ...