2015-05-02 46 views
0

我正在使用jquery ajax post方法將表單參數提交給JAXRS服務。黑莓jQuery AJAX dataparam傳遞問題

$.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資源層中獲取任何請求參數值。這個問題的根源是什麼?

回答

0

我發現問題的根本原因。默認情況下,在提交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方法中傳遞。