2013-07-12 7 views
3

Я новичок в javascript и jquery, и мне бы хотелось помочь, если это возможно. Я искал и пытался заставить его работать, но я думаю, что мне не хватает чего-то простого.Ajax JQuery Передача данных методу POST

я следующий метод в моем файле CS (CeduleGlobale.aspx.cs)

[WebMethod] 
    public static void SetSession(string data) 
    { 
     HttpContext.Current.Session["salesorderno"] = data; 
    } 

У меня также есть некоторые JavaScript в моем файле ASCX

<script type="text/javascript"> 
    function SetSession() { 

     var request; 

     var values = 'fred'; 
     request = $.ajax({ 
      type: "POST", 
      url: "CeduleGlobale.aspx/SetSession", 
      data: values, 
      contentType: "application/json; charset=utf-8", 
      dataType: "json" 
     }); 

     request.done(function() { 
      alert("Finally it worked!"); 
     }); 

     request.fail(function() { 
      alert("Sadly it didn't worked!"); 
     }); 


    } 
</script> 

Функция в скрипте называют

<dx:ASPxCheckBox ID="cbxHold" runat="server" AutoPostBack="true" Text="OnHold" ClientSideEvents-CheckedChanged="SetSession"> 
</dx:ASPxCheckBox> 

И результат я получаю это «Sad это не сработало! ».

Я знаю, что проблема не в чем-либо относительно пути к URL-адресу, поскольку она работала, когда я передавал NULL в качестве данных и имел метод без параметров.

Параметры и данные - вот что я сбиваю с толку, я верю.

+0

В ваших вариантах указано, что вы отправляете данные JSON, но ваши 'values' не соответствуют действующей форме JSON. – DevlshOne

ответ

2

Вы должны пройти сериализованную JSON в метод:

var values = JSON.stringify({data:'fred'}); 
request = $.ajax({ 
    type: "POST", 
    url: "CeduleGlobale.aspx/SetSession", 
    data: values, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json" 
}); 
+0

или values ​​= "key1 = value1 & key2 = value2" – reyaner

+1

Прежде всего, спасибо за ответы на все вопросы, это сообщество является удивительным и очень полезным. Я сделал то, что вы рекомендовали, и теперь я получаю сообщение Ошибка выполнения Microsoft JScript: неопределенная ошибка JSON - это отладчик Visual Studio. – SerenityNow

1

'' Фреду не json ни объекта

использования объекта обозначения:

{"myattr":"fred"} // вы также можете сделать {myattr:"fred"}

, а затем используйте JSON.stringify, которые преобразуют его в представление STRING json obje кт.

2

Вы указываете, что вы отправляете JSON, но не сериализовать значение для JSON, поэтому попробуйте изменить запрос следующим образом:

request = $.ajax({ 
     type: "POST", 
     url: "CeduleGlobale.aspx/SetSession", 
     data: JSON.stringify({data: values}), // 'stringify' the values to JSON 
     contentType: "application/json; charset=utf-8", 
     dataType: "json" 
    }); 
1

Данные, передаваемые через пост должен быть отправлен в { ключ: значение} values ​​= {name: 'fred'}

1

Данные должны быть переданы в пару [ключ: значение].

Смежные вопросы