本文将分享ajax–xmlHttpRequestabort()方法不会在InternetExplorer中关闭连接的详细内容,并且还将对ajax不执行url进行详尽解释,此外,我们还将为大家带来关于1
本文将分享ajax – xmlHttpRequest abort()方法不会在Internet Explorer中关闭连接的详细内容,并且还将对ajax不执行url进行详尽解释,此外,我们还将为大家带来关于13,前端-事件绑定-委托-XMLHttpRequest-jquery的ajax-和风天气ajax、Ajax XMLHttpRequest、AJAX XMLHttpRequest -----JQUERY、ajax XMLHttpRequest responseText返回值的相关知识,希望对你有所帮助。
本文目录一览:- ajax – xmlHttpRequest abort()方法不会在Internet Explorer中关闭连接(ajax不执行url)
- 13,前端-事件绑定-委托-XMLHttpRequest-jquery的ajax-和风天气ajax
- Ajax XMLHttpRequest
- AJAX XMLHttpRequest -----JQUERY
- ajax XMLHttpRequest responseText返回值
ajax – xmlHttpRequest abort()方法不会在Internet Explorer中关闭连接(ajax不执行url)
解决方法
http://ajaxian.com/archives/reusing-xmlhttprequest-without-abort
13,前端-事件绑定-委托-XMLHttpRequest-jquery的ajax-和风天气ajax
前端-事件绑定-委托-XMLHttpRequest-jquery的ajax-和风天气ajax
jquery的事件绑定和解绑
1、绑定事件
语法:
bind(type,data,fn)
描述:为每一个匹配元素的特定事件(像click)绑定一个事件处理器函数。
参数解释:
type (String) : 事件类型
data (Object) : (可选) 作为event.data属性值传递给事件对象的额外数据对象
fn ( Function) : 绑定到每个匹配元素的事件上面的处理函数
示例:
当每个p标签被点击的时候,弹出其文本
$("p").bind("click", function(){
alert( $(this).text() );
});
你可以在事件处理之前传递一些附加的数据。
function handler(event) {
//event.data 可以获取bind()方法的第二个参数的数据
alert(event.data.foo);
}
$("p").bind("click", {foo: "bar"}, handler)
通过返回false来取消默认的行为并阻止事件起泡。
$("form").bind("submit", function() { return false; })
通过使用 preventDefault() 方法只取消默认的行为。
$("form").bind("submit", function(event){
event.preventDefault();
});
2、解绑事件
语法:
unbind(type,fn);
描述:
如果没有参数,则删除所有绑定的事件。
如果把在绑定时传递的处理函数作为第二个参数,则只有这个特定的事件处理函数会被删除。
参数解释:
type (String) : (可选) 事件类型
fn(Function) : (可选) 要从每个匹配元素的事件中反绑定的事件处理函数
示例:
把所有段落的所有事件取消绑定
$("p").unbind()
将段落的click事件取消绑定
$("p").unbind( "click" )
删除特定函数的绑定,将函数作为第二个参数传入

var foo = function () {
//绑定事件和解绑事件的事件处理函数
};
$("p").bind("click mouseenter", foo); // 给p段落绑定click mouseenter事件
$("p").unbind("click", foo); // 只解绑了p段落标签的click事件
示例代码


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>练习</title>
<style>
</style>
</head>
<body>
<div>
123
</div>
<button>解绑</button>
<script src="jquery.js"></script>
<script>
$(function(){
$(''div'').bind(''click'',function(){
console.log(this.innerText);
})
$(''button'').click(function(event) {
$(''div'').unbind();
});
})
</script>
</body>
</html>
3.自定义事件
自定义事件语法:
trigger(type,data);
描述:在每一个匹配的元素上触发某类事件,它触发的是由bind()注册的自定义事件。
参数解释:
type (String) : 要触发的事件类型
data (Array) : (可选)传递给事件处理函数的附加参数
示例:
给一个按钮添加自定义的事件
$(''button'').bind(''myClick'',function(ev,a,b){
//给button按钮添加的自定义事件myClick事件
})
然后通过trigger()触发自定义的事件
$(''button'').trigger(''myClick'',[1,2])
4.补充 一次性事件
语法:
one(type,data,fn)
描述:
为每一个匹配元素的特定事件(像click)绑定一个一次性的事件处理函数。在每个对象上,这个事件处理函数只会被执行一次。其他规则与bind()函数相同
参数解释:
type (String) : 事件类型
data (Object) : (可选) 作为event.data属性值传递给事件对象的额外数据对象
fn (Function) : 绑定到每个匹配元素的事件上面的处理函数
示例:
当所有段落被第一次点击的时候,显示所有其文本。
$("p").one("click", function(){
//只有第一次点击的时候才会触发,再次点击不会触发了
alert( $(this).text() );
});
事件委托
原理:
利用冒泡的原理,把事件加到父级上,触发执行效果。
作用:
1.性能要好
2.针对新创建的元素,直接可以拥有事件
事件源 :
跟this作用一样(他不用看指向问题,谁操作的就是谁),event对象下的
使用情景:
•为DOM中的很多元素绑定相同事件;
•为DOM中尚不存在的元素绑定事件;
语法:
on(type,selector,data,fn);
描述:在选定的元素上绑定一个或多个事件处理函数
event.data
。
事件委托的步骤:


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>练习</title>
</head>
<body>
<ul>
<li>alex</li>
<li>tailiang</li>
</ul>
<script src="jquery.js"></script>
<script>
$(function(){
$(''ul li'').click(function(event) {
alert($(this).text());
});
})
</script>
</body>
</html>
下面是事件委托的代码:
使用的是on,


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>练习</title>
</head>
<body>
<ul>
<li>alex</li>
<li>tailiang</li>
</ul>
<script src="jquery.js"></script>
<script>
$(function(){
/*$(''ul li'').click(function(event) {
alert($(this).text());
});
// 点击这个就不会弹出内容,后续添加的不能实现前面写的功能,所以要解决这个问题
$(''ul'').append(''<li>后面添加的列表</li>'')*/
// 对比前面的代码,下面的代码,已经存在的列表有效,后续添加的列表也有效(此处为弹出内容)
$(''ul'').on(''click'',''li'',function(){
alert($(this).text());
});
$(''ul'').append(''<li>后面添加的内容</li>'')
})
</script>
</body>
</html>
添加类选择之后的代码


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<ul>
<li>alex</li>
<li>tailiang</li>
</ul>
<script src="jquery.js"></script>
<script>
$(function () {
// $(''ul li'').click(function(event) {
// Act on the event
// alert($(this).text());
// });
// 事件委托去处理
$(''ul'').on(''click'',''li'',function () {
// body...
alert($(this).text());
})
// bind on
// 未来发生的事情
//设置一个类后,点击没有a类的li就不好使了,(前面的两个li就不会弹出内容了)
$(''ul'').append(''<li>俊杰</li>'');
})
</script>
</body>
</html>
与后端服务器交互的时候,用到的比较多,
jquery的ajax
AJAX = 异步的javascript和XML(Asynchronous Javascript and XML)
AJAX方法:在不重载整个网页的情况下,AJAX通过后台加载数据,并在网页上进行显示。(局部刷新一下)
通过 jQuery AJAX 方法,可以使用 HTTP Get 和 HTTP Post 从远程服务器上请求文本、HTML、XML 或 JSON - 同时能够把这些外部数据直接载入网页的被选元素中。
有请求头,请求体,
响应头,响应体,
有请求必有响应,
需要了解的内容,
1.jQuery的load()方法
2.jquery的getJSON方法
3.jquery的$.get()方法
4.jquery的post()方法
原生js,ajax对象,XMLHttpRequest,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<button id="btn">发送ajax</button>
<script src="jquery.js"></script>
<script>
//(1)创建XMLHttpRequset对象
var xhr=new XMLHttpRequest();
// 0 初始化操作,之创建XMLHttpRequest对象,
console.log(xhr.readyState);
//2,状态机
xhr.onreadystatechange=function(event){
console.log(xhr.readyState);
switch (xhr.readyState) {
case 4:
// 响应数据成功
console.log(xhr.responseText)
break;
default:
// statements_def
break;
}
}
document.getElementById(''btn'').onclick=function(){
//3,打开网址, 第一个参数:连接方式,第二是:url地址,第三个是异步连接,默认是异步
xhr.open(''GET'',''http://localhost:8800/course'',true);
//4,发送请求体的数据,send方法必须调用,如果是get请求,send方法里面不用写任何内容,
// 调用完之后检查状态,
xhr.send();
}
</script>
</body>
</html>
XMLHttpRequest()对象补充
有如下概念:
1.Ajax能够实现异步传输,所依赖的就是JavaScript中的XMLHttpRequest
2.XMLHttpRequest对象是XMLHttp组件的对象,它是一个抽象对象,允许脚本从服务器获取返回的eXML数据或将数据发送到服务器端
3.XMLHttpRequest可以实现客户端与服务器只进行数据层面的交互,不必每次刷新页面
4.XMLHttpRequest最早在Microsoft Internet Explorer5.0中作为一个ActiveX控件提供,后受到广泛应用
5.在使用XMLHttpRequest发送请求和处理相应之前需要先创建一个XMLHttpRequest对象
6.XMLHttpRequest不是W3C标准,可采用多种方法用JavaScript来创建XMLHttpRequest实例
7.在IE中XMLHttpRequest实现为一个ActiveX控件,而其他浏览器则实现为一个JavaScript内置对象
XMLHttpRequest对象属性(接收并显示当前状态)
1.readyState-记录返回请求的状态
。0-为初始化:对象已经建立,单位初始化,open方法还未调用;
。1-初始化:对象已经建立,但还未调用send方法发送请求;
send方法是发送请求体数据的,get是在url上,post请求在请求体里面,
。2-发送数据:send方法已调用,但HTTP头未知;
。3-数据传输中:已经接受部分数据,但响应不完全;
。4-完成:数据接受完成,此时才可以获取完整的返回数据
2.responseText-接收客户端的HTTP响应的文本内容
。只读
。当readySate为1/2,responseText值是一个空字符串;
。当readyState为3,响应信息正在接受还未完成;
。当readyState为4,表示可以响应信息已经接收完成
。xmlHttp默认响应数据编码为UTF-8
3.responseXML-在send()执行后,将返回的信息格式化为XML Document对象
。Content-Type指定的MIME类型应该为text/HTML
。如果Content-Type不包含这种类型,responseXML在接收时将会得到一个null值
4.status-在send()执行后,可使用status读取事物状态
。长整型数据
。返回当前请求的HTTP的状态码
。只有当readyState为3或4时才使用该属性,否则读取status会发生错误
。100-客户必须继续发送请求
。200-交易成功
。400-错误请求
。403-请求不允许
。404-没有发现文件、查询、URL
。500-服务器内部错误
500以上,是服务器代码错误,
。502服务器暂时不可使用
。505-服务器不支持或拒绝不支持请求头中的HTTP版本
5.statusText-send()执行后,可通过statusText读取事物状态
。返回当前HTTP请求的状态行
。只有当readyState为3或4时才可使用该属性,否则读取state会发生错误
6.Onreadystatechange-readyState发生变化时所要执行的操作
。通常将处理函数名称赋予onreadystatechange来为XMLHttpRequest对象指定事件处理
。在事件处理函数中根据readyState的状态值进行相应的处理
jquery的ajax


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input type="text">
<button>提交</button>
<div class="box">
<ul>
</ul>
</div>
<div>
</div>
<script src="jquery.js"></script>
<script>
/*
$.ajax({
url:''http://localhost:8800/course'',
type:''get'',
dataType:''json'',
success:function (data) {
console.log(data);
$(''body'').html(data.name);
},
error:function (err) {
console.log(err)
}
});
*/
$(''button'').click(function(event) {
var nameVal = $(''input'').val();
$.ajax({
url:''http://localhost:8800/create'',
type:''post'',
dataType:''json'',
//发送数据给后台进行处理,处理完之后,返回到success回调函数里面,进行处理,
data:{
name:nameVal
},
success:function (data) {
//拿到数据,进行操作,
console.log(data);
// $(''ul'').empty();
data.forEach(function (item,index) {
console.log(item);
$(''<li></li>'').appendTo(''.box ul'').text(item.name);
})
},
error:function (err) {
console.log(err)
}
});
});
</script>
</body>
</html>
同源不同源的问题,
跨域,跨域又叫不同源
端口号之前,如果跟后端的地址不一样,就叫跨域
远程地址,192.168.19.200等,机器的IPv4地址,
跨域的例子:1
后端:http://localhost:8800/index
前端:http://127.0.0.1:8880/index
跨域的例子2,
后端:http://localhost:8800/index
前端:http://localhost:8801/index
端口号不一样,也是不在同一个域下,
使用CORB解决跨域问题是最频繁的,还有别的方法可以解决跨域,
Ajax XMLHttpRequest
总结
以上是小编为你收集整理的Ajax XMLHttpRequest全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
AJAX XMLHttpRequest -----JQUERY
AJAX的核心XMLHttpRequest
<html>
<head><script type="text/javascript">
var xmlhttp;
function loadXMLDoc(url)
{
xmlhttp=null;
if (window.XMLHttpRequest)
{// all modern browsers
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{// for IE5,IE6
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp!=null)
{
xmlhttp.onreadystatechange=state_Change;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
else
{
alert("Your browser does not support XMLHTTP.");
}
}
function state_Change()
{
if (xmlhttp.readyState==4)
{// 4 = "loaded"
if (xmlhttp.status==200)
{// 200 = "OK"
document.getElementById('p1').innerHTML="This file was last modified on: " + xmlhttp.getResponseHeader('Last-Modified');
}
else
{
alert("Problem retrieving data:" + xmlhttp.statusText);
}
}
}
</script>
</head>
<body>
<p id="p1">
The getResponseHeader() function returns a header from a resource.
Headers contain file information like length,
server-type,content-type,date-modified,etc.</p>
<button onclick="loadXMLDoc('/example/xdom/test_xmlhttp.txt')">Get "Last-Modified"</button>
</body>
</html>
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
function createHttpRequest() { var httpRequest = null; //针对IE7,火狐,谷歌等其他浏览器 if (window.XMLHttpRequest) { httpRequest = new XMLHttpRequest(); //针对某些特定版本的mozillar浏览器的BUG进行修正 /* 如果来自服务器的响应没有 XML mime-type 头部,则一些版本的 Mozilla 浏览器不能正常运行。 对于这种情况,httpRequest.overrideMimeType('text/xml'); 语句将覆盖发送给服务器的头部,强制 text/xml 作为 mime-type。 */ if (httpRequest.overrideMimeType) { httpRequest.overrideMimeType("text/xml"); } return httpRequest; } //针对IE5,IE6浏览器 if (window.ActiveXObject) { try { httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { try { httpRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (ex) { alert("创建XMLHTTPRequest对象失败!"); } } } return httpRequest; } function callServer(token) { var HTTP_Request = createHttpRequest(); if (HTTP_Request == null) { return; } /* 我们的实例在 open() 的第三个参数中使用了 "true"。 该参数规定请求是否异步处理。 True 表示脚本会在 send() 方法之后继续执行,而不等待来自服务器的响应。 onreadystatechange 事件使代码复杂化了。但是这是在没有得到服务器响应的情况下,防止代码停止的最安全的方法。 通过把该参数设置为 "false",可以省去额外的 onreadystatechange 代码。如果在请求失败时是否执行其余的代码无关紧要,那么可以使用这个参数。 */ HTTP_Request.open("GET","https://web.bd.taobizhong.com/Goods/AliPayStatus",true); //向服务器发送请求 HTTP_Request.send(); //当readyState属性改变的时候调用的事件句柄函数。当 readyState 为 3 时,它也可能调用多次。 HTTP_Request.onreadystatechange = function () { //HTTP 请求的状态.当一个 XMLHttpRequest 初次创建时,这个属性的值从 0 开始,直到接收到完整的 HTTP 响应,这个值增加到 4 if (HTTP_Request.readyState == 4) { //指定了请求的 HTTP 的状态代码(200表示正常,404表示未找到) if (HTTP_Request.status == 200) { document.getElementById("showmsg").innerHTML = HTTP_Request.responseText; } } } /* 当前是使用GET方式提交数据,数据都放在URL后面 而POST方法是把要发送的东西放到HTTP HEAD里面,这样最大可以发送2G的数据, 但用POST方法的时候一定要先使用setRequestHeader方法把Content-Type设置为"application/x-www-form-urlencoded", */ // content = "user=" + encodeURIComponent("gongxiongwei"); //HTTP_Request.open("POST","WebForm2.aspx",false); HTTP_Request.open("GET",true); HTTP_Request.setRequestHeader("GAME_TOKEN",token); // HTTP_Request.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //HTTP_Request.send(content); }
ajax XMLHttpRequest responseText返回值
总结
以上是小编为你收集整理的ajax XMLHttpRequest responseText返回值全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
今天的关于ajax – xmlHttpRequest abort()方法不会在Internet Explorer中关闭连接和ajax不执行url的分享已经结束,谢谢您的关注,如果想了解更多关于13,前端-事件绑定-委托-XMLHttpRequest-jquery的ajax-和风天气ajax、Ajax XMLHttpRequest、AJAX XMLHttpRequest -----JQUERY、ajax XMLHttpRequest responseText返回值的相关知识,请在本站进行查询。
本文标签: