2014-09-02 2 views
1

У меня есть js функцию:действие получает пустую строку после Ajax пост

Javascript:

function Post() 
{ 
    var table = $('#table4').dataTable(); 
    var data = table.$('input:text').serialize(); 
    console.log(data); 

    $.ajax({ 
     type: "POST", 
     url: '@Url.Action("SaveList")', 
     data: JSON.stringify(data), 
     dataType: "json", 
     contentType: 'application/json', 
     success: function() { 
      alert('success'); 
     }, 
     error: function() { 
      alert('error'); 
     } 

    }); 
} 

Действие:

[HttpPost] 
    public ActionResult SaveList(string serializedString) 
    { 
     var a = serializedString; 
     return RedirectToAction("CustomersList"); 
    } 

Проблема заключается в том, что действие Присылать пустое жало console.log(data) показывает, что есть контент, и если я поставил точку останова на контроллере он останавливается, но serializedString пуст. где может быть проблема? Благодаря!

+0

Try 'DATATYPE: 'text'' и удалить' contentType'. –

+0

@FlorianGl - Выражение 'dataType:" text "' не поможет. Проблема заключается в чтении данных на сервере, а не обработке ответа. – Quentin

+0

@FlorianGl - Удаление 'contentType' было бы глупо. «Данные» содержат JSON. Если вы удалите «contentType», вам нужно будет переформатировать данные, чтобы они были закодированы в виде данных вместо данных, закодированных JSON. – Quentin

ответ

1

Удалить два заявления от АЯКС функции "DATATYPE: "JSON" и CONTENTTYPE: 'приложения/JSON'," попробуйте это

function Post() 
{ 
    var table = $('#table4').dataTable(); 
    var data = table.$('input:text').serialize(); 
    console.log(data); 

    $.ajax({ 
     type: "POST", 
     url: '@Url.Action("SaveList")', 
     data: JSON.stringify(data), 

     success: function() { 
      alert('success'); 
     }, 
     error: function() { 
      alert('error'); 
     } 

    }); 
} 
+0

Я не хотел проголосовать, я не могу изменить его ... извините, я попробую еще раз позже – zzipper72

0

Спасибо вам, ребята, я решил проблему. Вот мой код на данный момент, возможно, позже я изменю его.

Javascript:

function Post() 
{ 
    var table = $('#table4').dataTable(); 
    var data = table.$('input:text').serialize(); 
    console.log(datas); 
    $.ajax({ 
     type: "POST", 
     url: '@Url.Action("SaveList")', 
     data: data, 
     datatype: 'json', 
     success: function() { 
      alert('success'); 
     } 
    }); 
} 

Действие:

public ActionResult SaveList(List<string> inputgrams, List<string> id) 
    { 
     ... 
    } 
Смежные вопросы