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方法中传递。