首先,我们用一个例子来说明jQuery的ajax调用过程,

实现的一个功能是在点击支付按钮确认后实现余额支付功能:

1。首先将需要调用的函数绑定到PHP页面上的按钮:

复制代码代码如下所示:




$(函数(){())

$(# pay_btn )Bind(单击。

});


2。脚本:

如果以美元的方式执行:

复制代码代码如下所示:
var

balancepay:功能(事件){

Event.preventDefault();

VaR这个= $(事件。currentTarget);

VaR形式= tthis.parents(‘形');

var url = form.attr('action);

VaR数据=码= 15; / / + $(#附加码(Val)。);

无功jqxhr =美元。后(URL、数据、定义、json);

JqXhr.done(功能(数据){)

/ / console.log(这是由控制台打印); / / # 4

$(#味精)。文本('result:+数据);

});

}


$ POST模式还可以直接指定回调函数:

复制代码代码如下所示:
无功jqxhr =美元。后(URL、数据、功能(数据){ {)

$(#味精)。文本('result:+数据);

},'jsonp);


ajax方法的实现:

复制代码代码如下所示:
无功jqxhr =美元。后(URL、数据、功能(数据){ {)

$(#味精)。文本('result:+数据);

},json;


ajax方法的实现:

复制代码代码如下所示:
无功jqxhr =美元。Ajax({

类型:邮政,

网址,

数据:{代码:15},

DataType: 'jsonp',

sccuess:功能(数据){

警报();},

错误:函数(XMLHttpRequest,textstatus,errorthrown){ / / # 3。此错误函数在调试时非常有用。如果解析不正确,它会弹出错误框。
警报(XMLHttpRequest。状态);
警报(XMLHttpRequest。readyState);
警报(textstatus); / /解析错误;
},

});


三.服务器端:

复制代码代码如下所示:
公共功能actioninterpayproc(美元回调)

{

页眉(内容类型:文本);

/ /头('content-type:文本/ HTML;字符集= UTF-8);

代码= { 'code美元美元_post};

/ / / / #美元代码1提供了一个表达与语法错误在这里

/ / / echo代码;2是这里/ #后来调试说明;

…

$结果=1;

/ /回波(_post { }美元'callback'。。json_encode($结果)。;;用于客户端请求和一致的编码;

出口(0);

}


调试工具

Firefox有一个强大的Firebug插件,现在新的浏览器如Chrome和Safari和IE 8有内置的调试工具,随着这些调试工具的帮助下,实施过程中可以很详细的查看Ajax(Chrome和Firefox的调试工具的快捷键Ctrl + Shift + C);
以下使用Firebug;


1。使用Firebug查看回调:

Ajax的方法,通过服务器的异步执行,如果服务器错误不显示在页面上,我们需要使用调试工具查看;例如,上面的例子# 2注释,触发Ajax请求时,在控制台面板在错误的返回结果视图:








如果存在服务器端程序错误,您也可以看到错误的原因与一般页面相同,但只在Ajax返回的面板中查看(Web浏览器页面不会显示任何内容)。
需要解释的是,如果我们使用回声和其他方法来打印需要在服务器端查看的变量,Ajax调用的结果必须失败,因为回调函数的名称似乎要改变,这使得它无法解析。

例如,打印变量为333,那么最终的结果是333ajaxcallbak回调(1);客户寻找的333ajaxcallbak函数名,不可解析。

2。使用错误函数打印错误信息:

$()有一个错误参数,可以指定当请求失败时调用的函数。这里提供的信息对调试非常有用。

错误:函数(XMLHttpRequest,textstatus,errorthrown)

第一个参数返回的错误事件,XMLHttpRequest,有一些有用的信息:

XMLHttpRequest.readyState:

它返回的状态代码对应于一个错误描述:

状态代码

0(未初始化)也不叫发()方法

1(加载)调用发送()方法是发送请求

2(加载)(发送)方法完成后,已收到所有响应内容

3(交互)响应正在被解析。

4(完全响应)内容分析完成,客户机调用

XMLHttpRequest.status:

这里返回的状态码是我们每天看到的HTTP状态;例如,404,没有找到页面;

TextStatus:

超时

(默认:自动判断(XML或HTML))通话时间当一个请求失败。参数三:XMLHttpRequest对象,错误信息和(可选的)错误的对象,如果有错误,错误信息(二参数)也可以超时

通过这个错误函数,程序错误很容易检查;

例如,在# 2以上,去掉注释,这相当于改变了回调函数的名字;在误差,它将报道:parsererror;

三.使用console.log打印:(警觉()也可以)

这只是一个辅助的方式来提高调试经验,注意变量跟踪JS,我们可以打印通过警报()方法,但往往是irritable.console.log弹出框是一个另类,它是一种萤火虫plug-in.the结果的console.log印刷变量将显示在Firebug控制台面板。

错误的可能原因:

1。如果返回的结果是不正确的,结果可以看到萤火虫。

2。对于JSON请求,格式是严格的:

如果错误击中错误的功能是:parsererror

可能的原因是服务器端脚本编码的问题;服务器处理功能中的第一行处理可以添加到相应的头信息中:

Eg:头('content-type:文本/ HTML;字符集= UTF-8);

当然,最有可能的是格式不正确。

复制代码代码如下所示:
回声{是':''成功};jQuery不能解析
回声:成功};没有错误。


不输出奇怪的JSON格式的字符串,或jq1.4 +版本不执行成功回调。如{ 1 }或{ ABC:ABC:1 },输出
复制代码代码如下所示:
{abc:1 }

{ ''成功':真}改为{成功:true}