你好,jquery的ajax有这2个配置不知道是不是你想要的
一个是headers
作用是发送一个额外的"{键:值}"对映射到请求,参数类型是object
一个是dataType
作用是设定返回数据的数据类型,参数类型是string,参考值json,script,html,text
XML>
对于Ajax技术的基础和核心,XML>
XML>
readyState属性
当一个XML>
responseText属性
此属性描述的是一个>
responseXML属性
只有当 ReadyState属性为4,并且响应头部的Content-Type的MIME类型被指定为XML(text/xml或者 application/xml)时,此属性才会有值并且被解析为一个XML文档,否则此属性为Null。若是回传的XML文档结构不良或未完成响应回 传,此属性也会为Null,由此可见,此属性用来描述被XML>
status属性
用于描述服务器>
onreadystatechange事件
每当readyState发生改变时触发此事件,一般都通过此事件来触发回传处理函数。
open()方法
XML>
当open()方法被调用时,XML>
send()方法
当调用 open()方法后,就可以通过调用send()方法按照open()方法设定的参数将请求进行发送。当open()方法中async参数为true 时,在send()方法调用后立即return,否则将会中断直到请求返回。需要注意的是,send()方法必须在readyState为1时,即调用 open()方法以后调用。在调用send()方法以后到接收到响应头之前,readyState的值将被设为2,一旦开始接收到响应消息, readyState将会被设为3,直到响应接收完成,readyState的值才会被设为4。
abort()方法
该方法可以暂停一个>
setRequestHeader()方法
该方法用于在调用open()方法后,设置>
getResponseHeader()方法
此方法在readyState为3或4时,用于获取>
在搞清楚了XML>
在一个配置好的站点工程里面新建一个名为AjaxTestaspx页面。首先在cs文件中的page_load事件函数中写下如下代码:
AjaxTestaspxcs:
protected void Page_Load(object sender, EventArgs e)
{
if (RequestQueryString["s"] == "1")//使用查询字串来指示这个请求是通过Ajax发出的
{
ResponseWrite("hello world!");//向>
ResponseEnd();//将页面缓冲发送向客户端浏览器 并中止该页输出
//如果去掉这句 会得到多余的HTML代码
}
}
相对来说,在前台页面中书写的代码将会多一些,慢慢地会发现这也许是Ajax的一个惯例:
AjaxTestaspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AjaxTestaspxcs" Inherits= "AjaxTest" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 10 Transitional//EN" ">
<html xmlns=">
<head runat="server">
<title>测试</title>
<script language="javascript" type="text/javascript">
<!--
function GetInfo(){//就是通过这个函数来异步获取信息的
var xml>
if (windowXML>
xml>
}
else if (windowActiveXObject){//IE5 IE6是以ActiveXObject的方式引入XML>
xml>
//IE5 IE6是通过这种方式
}
if(xml>
xml>
//调用open()方法并采用异步方式
xml>
xml>
}
function RequestCallBack(){//一旦readyState值改变,将会调用这个函数
if(xml>
{
documentgetElementById("iptText")value = xml>
//将xml>
}
}
}
-->
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="iptText" type="text" value="" />
<input type="button" id="" value="Ajax提交" onclick="GetInfo();" />
<!--点击这个按钮调用-->
</div>
</form>
</body>
</html>
如果在点击按钮的瞬间发现文本框内闪电般地出现了 “Hello world!”,那么恭喜,已经完成了一个Ajax调用。如果还对前台页面中那些和C#貌似神离的代码觉得不太明白,没关系,接下来就将来简单学习一下Ajax另外一个重要的部分——JavaScript。
一般将前台页面搜索结果中,不喜欢的内容(链接),删除掉,因为整个网站的编程框架式thinkphp,运用js中的ajax对页面进行响应,调用后台php接口,实现前台和后台数据库的同时更新
首先我们需要做的就是在前台页面中添加一个文本“删除”,可以这么添加:
代码如下:
<a href="javascript:void(0);" id= "<php>echo $val[id]</php>" class="delete" >删除</a>
上面的html代码的意思:就是给删除添加一个href,这个href是个js函数,类似于超链接的作用,当然对于我这样的新手在刚开始的时候会有疑惑,我们平时的超链接不是这样的,网页中很多的javascript:void(0),那程序怎么知道用户点击删除后,会响应其真正对应的js函数呢?别急,这就是为什么会为删除添加id以及class这样的标签,相信我把js中的代码公布出来以后你就会明白了,代码如下:
jQuery("list adelete")click(function(){
if(confirm("你确定要删除吗?")){
var _this=this;
var id = jQuery(_this)attr("id");
jQueryajax({
url : '/Search/indexphp/Jason/delete',
data : {'id':id},
dataType : 'json',
success : function(data){
var del = datadel;
if(del == 1){//删除成功
jQuery("#"+id)parents("list")remove();
}else{//删除失败
alert("删除失败");
}
}
});
}
});
大家看函数的头部:jQuery("list adelete")click(),jQuery后面的标签是很重要的,这就保证了jquery很准确的响应页面中用户点击的“位置”,添加的事件为click(),在click里添加响应事件的代码:var id = jQuery(_this)attr("id");获取a对应的id,因为这个id是我们删除数据库时用到的链接id,当然这种直接明文的方式不好,在这里只是介绍整个响应过程。调用ajax,实现异步的运行整个过程。我们设置了js接受的是json串,这里的方式应该有很多种吧,我没有去尝试,大家要是有兴趣可以自行尝试一下。/Search/indexphp/Jason/delete这句话就是js去请求php的接口,php接口对用的代码如下:
注意ajax在求php接口时的路径,也就是delete函数必须放在JasonActionclassphp中,此例子是必须这样的:
代码如下:
public function delete(){
if($this->isGet()){
$userId = session("uid");//用户登录
if(!empty($userId)){
$a = M('');
$id = $this->_get('id');
$result=$a->where("id=$id")->delete();//删除
if($result > 0){
$arr = array("del"=>'1');
}else{
$arr = array("del"=>'0');
}
$json_str = json_encode($arr);
echo $json_str;//返回给js
}
}
}
相信大家对上面的代码不会陌生吧,整个过程都是thinkphp框架内部配置完毕的
var del = datadel;这句是接受php代码返回来的json串中del这个key的value,进而在前台进行页面更新和响应
复制代码代码如下:
if(del == 1){//删除成功
jQuery("#"+id)parents("list")remove();//这句话就是后台删除成功后,直接在前台对响应的div进行删除,这样性能就会很快,无需进行后台数据的重新提取至前台页面中,
}else{//删除失败
alert("删除失败");
}
整个响应的过程就是这样,至于效果优化,是优化和细化方面的问题,后来,身边的同事又告诉我前台移除响应链接的另一个动态效果:
即将:
代码如下:
jQuery("#"+id)parents("list")remove();
替换为:
代码如下:
jQuery("#"+id)parents("list")slideUp("slow", function(){
jQuery(this)remove();
});
ajax, 页面完成之后就是,document ready后,向后台发送请求,后台接受到前台发送的请求之后就查询session的用户数据判断用户登录,不同的情况会发送不同的code值和数据,比如说没有登录 ,发送code=0 前台接受到之后就知道是没有登录 然后就显示 请 <a href='login'>登 录</a> 这样的 如果登录是code = 1 然后后面跟data= {uid = xxx}这样的 接受到code=1了 就说明已经登录了 在返回的data里获取信息显示出来就可以了
JSONArray json = JSONArrayfromObject(models); //list集合数据转json responsegetWriter()println(json);//传到前台 //ajax success: function(data){ var models = eval("("+data+")"); var rows=""; for(var i in models){ rows
以上就是关于jquery.form的ajaxsubmit提交时怎么添加一个自定义头部headers全部的内容,包括:jquery.form的ajaxsubmit提交时怎么添加一个自定义头部headers、.net中ajax有什么用法、thinkphp怎样获取ajax请求数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)