jquery.form的ajaxsubmit提交时怎么添加一个自定义头部headers

jquery.form的ajaxsubmit提交时怎么添加一个自定义头部headers,第1张

你好,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请求数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10092415.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存