2017-06-29 11 views
0

DataTableを満たすためにデータを取得するためにAjax経由で変数を渡そうとしています。私はまだ理由を説明していませんが、私のAjaxペイロードは、%=の記号といくつかのランダムな文字の組合せで、奇妙なエンコーディングになっています。私はcontentTypeとJSON.stringify()を使用する方法を試してみましたが、予期せぬ出力が修正されていません。Ajaxリクエストペイロードに予期しないエンコードが含まれています

JavascriptのAjaxリクエスト:

var group = { groupId: 123456789 } 
... 
"ajax": { 
    type: 'POST', 
    url: window.SiteRootURL + 'Group/GetGroup', 
    contentType: 'application/json', 
    data: JSON.stringify(group), 
    "error": function (xhr, error, thrown) { 
     notfiy({ status: "Error", message: thrown }, 'error'); 
    } 

コントローラー:

public ActionResult GetGroup(Int32 groupId) 
{ 
    // do something 
} 

Ajaxの要求ペイロード:

0=%7B&1=%22&2=g&3=r&4=o&5=u&6=p&7=A&8=r&9=t&10=i&11=f&12=a&13=c&14=t&15=I&16=d&17=%22&18=%3A&19=1&20=2&21=3&22=4&23=5&24=6&25=7&26=8&27=9&28=%7D 

期待Ajaxの要求ペイロード:

{groupId: 123456789} 

すべてのヘルプ感謝:)

+0

試し「アプリケーション/ jsonの;のcharset = UTF-8」@Bindridはすでに1、運が残念ながら – Bindrid

+0

が期待されている何ですか? – rjmd

+0

あなたがwindow.SiteRootURLを確認していないということを試してみました – Bindrid

答えて

0

問題がDataTablesに直接関係します。 Ajaxリクエストでは、ajax.dataは文字列を受け入れません。 JSONデータを投稿するには、関数内の文字列を返す必要があります。以下​​からの例です:

$('#example').dataTable({ 
    "ajax": { 
    "url": "data.json", 
    "contentType": "application/json", 
    "type": "POST", 
    "data": function (d) { 
     return JSON.stringify(d); 
    } 
    } 
}); 
関連する問題