在Ajax开发中因为是通过XMLHttpRequest获取服务器页面的,因此当服务器端出现错误的时候并不是直接显示于浏览器,从而看不到错误,给调试带来麻烦。解决办法有2个:
(1)直接在浏览器中输入异步调用的地址,看返回结果。这在少参数的get调用中很有效,但对于post请求或者复杂的get请求,很难做到。
(2)也就是我说的所谓小技巧,呵呵,下面给出了prototype框架和不使用框架的典型用法:
//基于prototype框架开发的典型写法
onFailure:function(transport){
//当请求失败时,新建窗口显示错误信息
var w=window.open("");
w.document.write(transport.responseText);
}
onFailure:function(transport){
//当请求失败时,新建窗口显示错误信息
var w=window.open("");
w.document.write(transport.responseText);
}
//直接使用XMLHttpRequest的用法
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4)
{
if (xmlhttp.status == 200)
{
//请求成功的处理语句
}
else
{
//当请求失败时,新建窗口显示错误信息
var w=window.open("");
w.document.write(xmlhttp.responseText);
}
}
}
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4)
{
if (xmlhttp.status == 200)
{
//请求成功的处理语句
}
else
{
//当请求失败时,新建窗口显示错误信息
var w=window.open("");
w.document.write(xmlhttp.responseText);
}
}
}