jQuery AJAX Blackberry 中的数据参数传递问题
jQuery AJAX dataparam passing issue in Blackberry
我正在使用 jquery ajax post 方法将表单参数提交给 JAXRS 服务。
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "http://xyz.in/webservice.asmx/backup_p",
data: "{ 'id': '1', 'data': '4' }",
dataType: "json",
success: function (msg) {
alert('sucess !!!');
alert(msg.d);
},
error: function (jqXHR, textStatus, errorThrown) {
alert('hello');
alert(jqXHR + " : " + textStatus + " : " + errorThrown);
}
});
在将输入值作为 dataParam 提交之前,我正在转换为 JSON 格式。它适用于除黑莓以外的所有设备。在黑莓设备中,请求参数作为空值发送。我无法在 JAXRS 资源层中获取任何请求参数值。问题的根本原因是什么?
我找到了问题的根本原因。默认情况下,所有浏览器都会在提交 XMLHTTPREQUEST 之前将 JSON 对象转换为序列化表示。但它只在黑莓设备上失败。所以在提交 jQueryAJAX post 方法之前,需要使用 $.param 方法将 dataParam 转换为 URLString。
var fomrValues = $("form[name=" + N + "]").find("input").not('[value=""]');
dataArray = formValues.serializeArrayDataAttr();
dataParam = $.param(dataArray);
这个dataParam值需要在AJAX Post方法中传递。
我正在使用 jquery ajax post 方法将表单参数提交给 JAXRS 服务。
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "http://xyz.in/webservice.asmx/backup_p",
data: "{ 'id': '1', 'data': '4' }",
dataType: "json",
success: function (msg) {
alert('sucess !!!');
alert(msg.d);
},
error: function (jqXHR, textStatus, errorThrown) {
alert('hello');
alert(jqXHR + " : " + textStatus + " : " + errorThrown);
}
});
在将输入值作为 dataParam 提交之前,我正在转换为 JSON 格式。它适用于除黑莓以外的所有设备。在黑莓设备中,请求参数作为空值发送。我无法在 JAXRS 资源层中获取任何请求参数值。问题的根本原因是什么?
我找到了问题的根本原因。默认情况下,所有浏览器都会在提交 XMLHTTPREQUEST 之前将 JSON 对象转换为序列化表示。但它只在黑莓设备上失败。所以在提交 jQueryAJAX post 方法之前,需要使用 $.param 方法将 dataParam 转换为 URLString。
var fomrValues = $("form[name=" + N + "]").find("input").not('[value=""]');
dataArray = formValues.serializeArrayDataAttr();
dataParam = $.param(dataArray);
这个dataParam值需要在AJAX Post方法中传递。