2014-12-08 118 views
0

我正在C++中實現一個HTTP服務器,並通過jQuery向其發送Ajax POST請求。AJAX發佈請求編碼

我有我的網頁上,我提交使用此代碼的一種形式:

$('#create-event form').submit(function(e) { 
    var postData = $(this).serializeArray(); 
    var formURL = $(this).attr('action'); 
    $.ajax({ 
     url : formURL, 
     type: 'POST', 
     data : postData, 
     contentType: 'text/plain' 
    }); 
    e.preventDefault(); 
}); 

當我收到我的C++,最後這個請求〜查詢參數的10個字符亂碼一塌糊塗,就好像編碼是錯誤的一樣。事情是,我有很多這種類型的表單,並且這種相同的瑕疵也發生在其他表單上,直到我添加了contentType: 'text/plain'字段。現在這個表單是這個編碼問題發生的唯一的一個。

是否有任何其他類型的編碼字段,我可以設置,以防止這種garbling?我嘗試了一切,我可以找到,沒有任何幫助。

任何幫助將不勝感激,我已經花了幾個小時了。

編輯: 我現在轉換爲unix時間戳客戶端,並沒有gar,,它必須有與URL編碼的空間和冒號有關。

回答

0

若要創建查詢字符串,您應該嘗試使用$(this).serialize()而不是序列化數組。

$('#create-event form').submit(function(e) { 
    var postData = $(this).serialize(); 
    var formURL = $(this).attr('action'); 
    $.ajax({ 
     url : formURL, 
     type: 'POST', 
     data : postData, 
     contentType: 'text/plain' 
    }); 
    e.preventDefault(); 
}); 
+0

看起來你是對的,所以我切換到.serialize()。但它並沒有改變任何事情。 – holdennb 2014-12-08 03:04:17

+0

並且您是否刪除了contentType? – Todd 2014-12-08 03:06:39

+0

刪除contentType只是使歪斜變得更糟,就像通常那樣。 – holdennb 2014-12-08 03:12:10