jquery跨域提交及form序列号乱码问题解决
jquery跨域异步提交的时候,由于安全限制,会无法提交,可以使用jsonp的格式提交。
var params = $("#" + form_id).serialize(); // form序列化,转化后形成a=a1&b=b1这样的形式
params = decodeURIComponent(params, true); // 解码序列化
params = encodeURI(encodeURI(params)); // 再编码,到后台用 pa = java.net.URLDecoder.decode(pa , "UTF-8");这样便可以解决乱码问题
$.getJSON($("#" + form_id).attr("action") + '?callback=?', params,
function (result) {
if (result.textStatus == "success" && result.isSuccess == "true") {
alert("提交成功!");
window.location.reload();
} else {
alert(result.msg);
}
});其他使用技巧:
serializeArray()方法
格式:var jsonData = $("#formID").serializeArray();
功能:将页面表单序列化成一个JSON结构的对象。注意不是JSON字符串。
比如,[{"name":"lihui"},{...}] 获取数据为 jsonData[0].name
$.param()方法,可以把json格式数据序列化成字符串形式
varobj={a:1,b:2}
vars=$.param(obj);
会形成a=1&b=2的形式
自定义方法:
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
}; 相关推荐
Qc 2020-07-19
swiftwwj 2020-07-05
wcqwcq 2020-07-04
TONIYH 2020-06-11
yhginny 2020-04-20
nicepainkiller 2020-05-12
苦咖啡flask 2020-05-09
xinjing0 2020-05-08
Lius 2020-05-05
ajaxtony 2020-05-04
bcbeer 2020-04-23
sicceer 2020-04-20
cmsmdn 2020-02-18
longshengguoji 2020-02-13
ajaxtony 2020-02-03
ELEMENTS爱乐小超 2020-01-17
waterv 2020-01-01