手写原装ajax,手写原生ajax

关于手写原生ajax重要不重要,各位道友自己揣摩吧, 本着学习才能进步,分享大家共同受益,自己也在自己博客里写一下

function createXMLHTTPRequest() {

//1.创建XMLHttpRequest对象

//这是XMLHttpReuquest对象无部使用中最复杂的一步

//需要针对IE和其他类型的浏览器建立这个对象的不同方式写不同的代码

var xmlHttpRequest;

if (window.XMLHttpRequest) {

//针对FireFox,Mozillar,Opera,Safari,IE7,IE8

xmlHttpRequest = new XMLHttpRequest();

//针对某些特定版本的mozillar浏览器的BUG进行修正

if (xmlHttpRequest.overrideMimeType) {

xmlHttpRequest.overrideMimeType("text/xml");

}

} else if (window.ActiveXObject) {

//针对IE6,IE5.5,IE5

//两个可以用于创建XMLHTTPRequest对象的控件名称,保存在一个js的数组中

//排在前面的版本较新

var activexName = [ "MSXML2.XMLHTTP", "Microsoft.XMLHTTP" ];

for ( var i = 0; i < activexName.length; i++) {

try {

//取出一个控件名进行创建,如果创建成功就终止循环

//如果创建失败,回抛出异常,然后可以继续循环,继续尝试创建

xmlHttpRequest = new ActiveXObject(activexName[i]);

if(xmlHttpRequest){

break;

}

} catch (e) {

}

}

}

return xmlHttpRequest;

}

然后就是常见的GET 和POST请求

Get请求代码

function get(){

var req = createXMLHTTPRequest();

if(req){

req.open("GET", "http://test.com/?keywords=手机", true);

req.onreadystatechange = function(){

if(req.readyState == 4){

if(req.status == 200){

alert("success");

}else{

alert("error");

}

}

}

req.send(null);

}

}

POST代码

function post(){

var req = createXMLHTTPRequest();

if(req){

req.open("POST", "http://test.com/", true);

req.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=gbk;");

req.send("keywords=手机");

req.onreadystatechange = function(){

if(req.readyState == 4){

if(req.status == 200){

alert("success");

}else{

alert("error");

}

}

}

}

}

希望能帮到各位,祝大家都能顺利。

用javascript写原生ajax&lpar;笔记&rpar;

AJAX  的全名叫做  Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).它最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并 ...

纯手写实现ajax分页功能

前言 最近用到了这个功能,百度大半天,网上的不是有各种问题就是需要引入其他的插件,无奈,只能自己写,大致功能已经完成.前端页面用bootstrap做样式,分页功能用ajax实现,没用其他插件哦,只引入 ...

手写PHP AJAX数据脚本

ajax简介及JS写原生ajax

ajax 1.什么是ajax ajax 的全称是Asynchronous JavaScript and XML,其中, Asynchronous 是异步的意思,指的是异步 JavaScript 和 X ...

ajax和原生ajax、文件的上传

ajax理解: ajax发送的请求是异步处理的.也就是说如下形式: function f1(){ $.ajax( { ....... success:function(){ a= return a } ...

2019前端面试系列——JS高频手写代码题

实现 new 方法 /* * 1.创建一个空对象 * 2.链接到原型 * 3.绑定this值 * 4.返回新对象 */ // 第一种实现 function createNew() { let obj ...

&period;net学习之Session、Cookie、手写Ajax代码以及请求流程

1.IIS 7 以上版本集成了两种模式,一种是经典模式,一种是集成模式(直接将asp.net框架集成到IIS中) 2.浏览器和服务器端通过什么技术来实现的?Socket(套接字),通信的语法是HTTP ...

一套手写ajax加一般处理程序的增删查改

倾述下感受:8天16次驳回.这个惨不忍睹. 好了不说了,说多了都是泪. 直接上代码 : 这个里面的字段我是用动软生成的,感觉自己手写哪些字段太浪费时间了,说多了都是泪 ajax.model层的代码: ...

手写Ajax的意义所在,从青铜到钻石!

话说菩提祖师打了孙猴子三板子  然后悟空学会72般变化以及一身神通 对待这个问题作为面试者要思考更加深层次的意义 才更能获得认可 实际上写的ajax 很能看出一个的水平 贴几段代码就可以看出水平的高低 ...

随机推荐

MFC窗口和控件大小等比例变化

第一步:OnInitDialog里保存对话框及其所有子窗体的Rect区域 CRect rect; GetWindowRect(&rect); listRect.AddTail(rect);// ...

(二)重拾单片机 第一天 LED灯

由图知道 低电平 亮,高电平 灭 控制第一个 LED1 亮灭程序代码,如下 #include #define uchar8 unsigned char #define u ...

mapreduce运行机制

详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt243 谈mapreduce运行机制,可以从很多不同的角度来描述,比如说从ma ...

Codeforces Beta Round &num;1 A&comma;B&comma;C

A. Theatre Square time limit per test:1 second memory limit per test:256 megabytes input:standard in ...

Oracle解锁scott账号

在安装Oracle的最后一步,有一个口令管理的操作,当时忘了给scott账号解锁了(Oracle为程序测试提供的一个普通账户,口令管理中可以对数据库用户设置密码,默认是锁定的).现在想给scott这个 ...

&lbrack;Swift&rsqb;LeetCode137&period; 只出现一次的数字 II &vert; Single Number II

Given a non-empty array of integers, every element appears three times except for one, which appears ...

SQL 姓名,联系方式-脱敏

SELECT ORDER_PROJECT.project_type AS attribute, ORDER_PROJECT.order_num, ,), "*") AS pv, C ...

第75节:Java的中的JSP,EL和JSTL

第75节:Java中的JSP,EL和JSTL 哭吧看不完的!!! Cookie和`Session 请求转发和重定向的区别: 地址不一样 请求次数也不一样 数据无法传递 4.跳转范围有限制 效率 请求转 ...

LeetCode 811 Subdomain Visit Count 解题报告

题目要求 A website domain like "discuss.leetcode.com" consists of various subdomains. At the t ...