Ajax框架(UTF-8编码),POST传输
2013-05-15 22:52
155 查看
/*
* The source code for this program is not published or otherwise divested of
* its trade secrets.
*
*/
/** Ajax 请求的封装类
* Example:
* //实例化一个请求对象
* var ajaxObj = new AjaxProxyII();
* //设置ajax请求的url
* ajaxObj.setRequestUrl("localhost/projectName/path/someAction.action")
* //设置回调函数 回调函数 要有两个参function someFunc(data , textStatus);
* ajaxObj.setOnSuccess(someFunc);
* //设置要传递的参数 如果参数是对象形式
* ajaxObj.addParaObj(paraObject);
* //如果参数为键值对形势
* ajaxObj.addParameter("key" , value);
* //设置同步异步 默认为异步
* ajaxObj.setAsync(false);
* //发送请求
* ajaxObj.sendRequest();
*/
var AjaxProxyII = function(){
this.parameter = new Object();
this.pojoPackagePath = "com.taiyang.search.bean";
this._props = new Object();
this._argArray = new Array();
this._pojoName = '';
this._paraStr = '';
this._props['asyn'] = true;
this.setPojoName = function(pojoName){
this._pojoName = this.pojoPackagePath + pojoName ;
}
this.setRequestUrl = function(url){
this._props['url'] = url;
}
this.setOnSuccess = function(func){
this._props['onSuccess'] = func;
}
this.addParaObj = function(obj){
this._argArray.push(obj);
}
this.sendRequest = function(){
var callfunc=this._props['onSuccess'];
this.setupParaStr();
$.ajax({
type : 'POST',
url : this._props['url'],
success :function(data){
if(data.indexOf('errormessage')>-1){
var tmpObj = eval( '(' + data + ')' );
if(tmpObj['errorcode']=="0"){
var windowsArr=new Array();
getWindowTop(window,windowsArr,tmpObj['errormessage']);
return;
}else if(tmpObj['errorcode']=="1"){
window.location.href=homeUrl+"/error.jsp?errormessage="+encodeURI(encodeURI(tmpObj['errormessage']));
return;
}
}
callfunc(data);
},
data :this._paraStr,
async : this._props['asyn'],
error : function(data , textStatus){
//alert("错误" + data);
}
});
}
this.setParaStr = function(str){
this._paraStr = str;
}
this.addParameter = function(key , value){
this.parameter['' + key] = value;
}
this.setAsync = function(flag){
this._props['asyn'] = flag;
}
this.setupParaStr = function(){
if(this._pojoName != 'undefined' && this._pojoName != ''){
this._paraStr += '&pojoName=' + this._pojoName + '&jsonData=';
this._paraStr += JSON.stringify(this._argArray);
}
for(var i = 0 ; i<this._argArray.length; i++){
this._argArray[i] = null;
}
for(var p in this.parameter){
this._paraStr += p + '=' + this.parameter[p] + '&';
}
// this._paraStr = "乱码"
//this._paraStr = encodeURI(this._paraStr);
}
}
* The source code for this program is not published or otherwise divested of
* its trade secrets.
*
*/
/** Ajax 请求的封装类
* Example:
* //实例化一个请求对象
* var ajaxObj = new AjaxProxyII();
* //设置ajax请求的url
* ajaxObj.setRequestUrl("localhost/projectName/path/someAction.action")
* //设置回调函数 回调函数 要有两个参function someFunc(data , textStatus);
* ajaxObj.setOnSuccess(someFunc);
* //设置要传递的参数 如果参数是对象形式
* ajaxObj.addParaObj(paraObject);
* //如果参数为键值对形势
* ajaxObj.addParameter("key" , value);
* //设置同步异步 默认为异步
* ajaxObj.setAsync(false);
* //发送请求
* ajaxObj.sendRequest();
*/
var AjaxProxyII = function(){
this.parameter = new Object();
this.pojoPackagePath = "com.taiyang.search.bean";
this._props = new Object();
this._argArray = new Array();
this._pojoName = '';
this._paraStr = '';
this._props['asyn'] = true;
this.setPojoName = function(pojoName){
this._pojoName = this.pojoPackagePath + pojoName ;
}
this.setRequestUrl = function(url){
this._props['url'] = url;
}
this.setOnSuccess = function(func){
this._props['onSuccess'] = func;
}
this.addParaObj = function(obj){
this._argArray.push(obj);
}
this.sendRequest = function(){
var callfunc=this._props['onSuccess'];
this.setupParaStr();
$.ajax({
type : 'POST',
url : this._props['url'],
success :function(data){
if(data.indexOf('errormessage')>-1){
var tmpObj = eval( '(' + data + ')' );
if(tmpObj['errorcode']=="0"){
var windowsArr=new Array();
getWindowTop(window,windowsArr,tmpObj['errormessage']);
return;
}else if(tmpObj['errorcode']=="1"){
window.location.href=homeUrl+"/error.jsp?errormessage="+encodeURI(encodeURI(tmpObj['errormessage']));
return;
}
}
callfunc(data);
},
data :this._paraStr,
async : this._props['asyn'],
error : function(data , textStatus){
//alert("错误" + data);
}
});
}
this.setParaStr = function(str){
this._paraStr = str;
}
this.addParameter = function(key , value){
this.parameter['' + key] = value;
}
this.setAsync = function(flag){
this._props['asyn'] = flag;
}
this.setupParaStr = function(){
if(this._pojoName != 'undefined' && this._pojoName != ''){
this._paraStr += '&pojoName=' + this._pojoName + '&jsonData=';
this._paraStr += JSON.stringify(this._argArray);
}
for(var i = 0 ; i<this._argArray.length; i++){
this._argArray[i] = null;
}
for(var p in this.parameter){
this._paraStr += p + '=' + this.parameter[p] + '&';
}
// this._paraStr = "乱码"
//this._paraStr = encodeURI(this._paraStr);
}
}
相关文章推荐
- HttpClient POST 的 UTF-8 编码问题
- as3中的socket的readUTFBytes方法,它的UTF指的是UTF-8,只要服务器采用UTF-8编码,传输和修改中文的问题就能解决
- HttpClient POST 的 UTF-8 编码问题
- 【okhttp】Post请求设置utf-8编码(解决汉语请求乱码问题)
- snmp octe string utf编码 传输多国文字
- c++ builder2010 indy控件idhttp, post页面获取数据(要注意编码的问题,双方都使用UTF-8最好)
- GBK,UTF-8,和ISO8859-1编码区别与get,post请求中文乱码处理
- Android中POST请求中的UTF-8编码问题
- android http post请求,设置utf-8编码,服务端还是出现中文乱码 解决
- Other:网页get与post传输过程中URL的编码问题
- spring+mvc get请求,post请求编码问题(utf-8)
- HttpClient POST 的 UTF-8 编码问题
- android POST数据遇到的UTF-8编码(乱码)问题解决办法
- 电子邮件附件名称包含非 ASCII 字符,并且长度超过 41 utf-8 编码字节的是之前的.NET Framework 4 编译的应用程序中的传输编码两次
- UTF-8 Unicode Ansi 汉字GB2321几种编码转换程序
- django 开发 - 小心模板文件的编码格式(utf-8)
- 探索UTF-8中文编码的BOM标记问题
- oracle数据库字符编码utf-8改为ZHS16GBK
- js可以解码utf-8编码,我一直以为decodeURIComponent只能解码16进制呢,原理???
- 介绍ASCII,UNICODE,UTF-8等各种编码方案