历史版本17 :FR.ajax 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

ajax 是封装过的 jQuery.ajax() 函数,对 data 参数做了中日韩文编码处理,可以通过 FR.ajax(options) 在任何可以用 JS 的地方进行调用。

目录:

参数说明编辑

options 是 ajax 参数,如下表说明:

参数类型说明
optionsObject必填,ajax参数

[options]以 json 格式提供,属性如下表所示:

属性类型说明
urlString必填,发送请求的地址
dataObject发送到服务器的数据。GET 请求中将自动转换为请求字符串格式,附加在 URL 后。

值必须是 Key/Value 格式,可以是字符串如 p1=pavalue&p2=p2value,或者是对象如 {p1:p1value,p2:p2value}

typeString请求方式 POST/GET ,默认为 GET
dataTypeString

预期服务器返回的数据类型。如果不指定,将自动根据 HTTP 包 MIME 信息来智能判断。可用值有:

"xml":返回 XML 文档
"html":返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。
"script":返回纯文本 JavaScrip t代码。
"json":返回 JSON 数据。
"text":返回纯文本字符串。
"jsonp" : 跨域采用 jsonp 方式

successFunction

请求成功后的回调函数,格式如:

success: function(data, textStatus){  
// data 为服务器返回的,并根据 dataType 参数进行处理后的数据。
//textStatus 为状态值 success
}

如下示例:

FR.ajax({
url: "/webapps/webroot/a.html",
success: function(data, textStatus) {
alert(this.url);
}
});
errorFunction

请求失败时调用此函数,格式如:

error: function(XMLHttpRequest, textStatus, errorThrown){ 
//参数分别为 XMLHttpRequest 对象、错误信息、捕获的异常对象。
//通常 textStatus 和errorThrown 之中只有一个会包含信息
 }

如下示例:

FR.ajax({
url: "some.jsp",
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(this.url);
}
});
completeFunction请求完成后回调函数(请求成功或失败之后均调用),function 中可以通过 this.xxx 来调用该 Ajax 请求中的选项值。
complete: function(XMLHttpRequest, textStatus){  
//参数分别为 XMLHttpRequest 对象和一个描述成功请求是否成功的字符串
 }

如下示例:

FR.ajax({
url: "some.jsp",
complete: function(XMLHttpRequest, textStatus) {
alert(this.url);
}
});
timeoutNumber设置请求超时时间(毫秒),此设置将覆盖全局设置。
async Boolean

默认为 true,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。

注:同步请求将锁住浏览器,用户其他操作必须等待请求完成才可以执行 

示例编辑

在 CPT 的单元格超链 JS 中发 ajax 请求,且在不同的回调函数中处理不同的情况:

var username = "1";
var password = "1";
FR.ajax({   
   url:"http://env.finedevelop.com:59204/Test
/ReportServer?op=fs_load&cmd=sso",
   data:{
        fr_username:username,
        fr_password:password
   },
   dataType:"jsonp",//跨域采用jsonp方式     
   timeout:5000,//超时时间(单位:毫秒)
   //success:function(data) { //data参数视返回值情况而定
        //FR.Msg.alert("success",data.status);
   //},   
   //error:function(errorThrown){   
        //FR.Msg.alert("error",errorThrown);
   //},
   complete: function(res,textStatus){ 
        FR.Msg.alert("complete",textStatus); 
   }  
})