2013-10-23 99 views
0

我正在通過jQuery ajax對Struts2 Action類進行AJAX調用。jquery ajax post,數據不發送到服務器

我從我的客戶端發送json數據到服務器。如果我在$.ajax()中使用「GET」,數據將被傳輸到服務器。如果我用$.ajax()中的「POST」替換GET,則數據不會傳輸到服務器。

我的代碼,

$.ajax(
{ 
    type: 'GET', 
    url: 'login.action', 
    contentType: "application/json; charset=utf-8", 
    dataType: 'json', 
    data: 
    { 
    jsonData: JSON.stringify(
    { 
     number:"10", 
     name:"ramesh"   
    }) 

    }, 
    success: function (data) 
    { 
    printStudentDetails(data); 
    } 
}); 

在Firebug,同時使用GET,JSON數據作爲

jsonData {"number":"10","name":"ramesh"} 

在使用POST,JSON數據是這樣的有形可見,

jsonData=%7B%22number%22%3A34%2C%22name%22%3A34%2C%22 

什麼是使用POST將數據發送到服務器的解決方案。

+0

http://stackoverflow.com/questions/19544324/differences-between-post-and-get-in-jquery-ajax –

+0

你有一個額外的逗號在對象的傳遞給'JSON.stringify' 。 Firefox不會窒息而已,但IE會。 –

回答

0

你沒有發送JSON到服務器,你發送表單參數。刪除contentType。

url: 'login.action', 
//contentType: "application/json; charset=utf-8", 
dataType: 'json', 
+0

我試過了,但數據仍然沒有發送到服務器。 – reddy

+0

而且您確定這與您如何檢索服務器上的數據無關?我保證它以這種或那種方式將數據發送到服務器。 –

+0

在服務器上,我使用java struts2行動類, – reddy

1

它似乎正如我所期望的那樣工作。它將您的JSON數據字符串化,並且您在POST中看到的內容是HTML編碼的。如果你想直接發送你的JSON數據,擺脫JSON.stringify

$.ajax(
{ 
    type: 'GET', 
    url: 'login.action', 
    contentType: "application/json; charset=utf-8", 
    dataType: 'json', 
    data: 
    { 
     number:"10", 
     name:"ramesh" 
    }, 
    success: function (data) 
    { 
    printStudentDetails(data); 
    } 
}); 
相關問題