Переменные jQuery AJAX POST недоступны на сервере - PullRequest
0 голосов
/ 15 июля 2010

Я использую jQuery для публикации некоторых данных на сайте asp.net mvc. Сообщение успешно выполняется, и действие целевого контроллера выполняется, когда я отлаживаю его в Visual Studio, однако кажется, что передаваемые данные не переносятся. Я не вижу его ни в Request.Params, ни в Request.Headers. Мой пост выглядит следующим образом:

$.ajax({
      url: "http://localhost/PlatformPortal/Buyers/Account/SignIn",
      headers: {signature: authHeader},
      type: "POST",
      // tried this data: authHeader
      success: function() { alert('Success!'); }
    });

Я что-то здесь упускаю?

Ответы [ 2 ]

4 голосов
/ 15 июля 2010

вам необходимо опубликовать свои данные в data свойстве:

$.ajax({
  url: "http://localhost/PlatformPortal/Buyers/Account/SignIn",
  data: {signature: authHeader},
  type: "POST",
  // tried this data: authHeader
  success: function() { alert('Success!'); }
});
2 голосов
/ 15 июля 2010

headers не является допустимым параметром для $.ajax(), вместо него нужно data, например:

$.ajax({
  url: "http://localhost/PlatformPortal/Buyers/Account/SignIn",
  data: {signature: authHeader},
  type: "POST",
  success: function() { alert('Success!'); }
});

Если вы do хотите установить заголовки, вы должны сделать это в обработчике события beforeSend, например:

$.ajax({
  url: "http://localhost/PlatformPortal/Buyers/Account/SignIn",
  beforeSend: function(xhr) {
     xhr.setRequestHeader("signature", authHeader);
  },
  type: "POST",
  success: function() { alert('Success!'); }
});
...