jQuery Ajax-запрос к веб-методу - PullRequest
1 голос
/ 02 марта 2011

Я пытаюсь отправить данные в мой метод кода. Это работает за исключением случаев, когда я добавляю к параметру data.

function (obj) {
   $.ajax({
       type: "POST",
       url: "Pages.aspx/EditPage",
       data: "{'nodeID': '" + $(this).attr('id') + "'}",
       contentType: "application/json; charset=utf-8",
       dataType: "json",
       success: function (msg) {
               // Replace the div's content with the page method's return.
       }
     });
    }

Почему добавленный мною параметр не позволяет использовать веб-метод?

ОБНОВЛЕНИЕ: После просмотра того, какие ошибки были сброшены на стороне клиента, кажется, что идентификатор не определен. Мой метод получения идентификатора элемента неверен? Имейте в виду, что я использую jsTree и ca, возможно, я использую (obj)?

Ответы [ 5 ]

1 голос
/ 02 марта 2011

попробуйте что-нибудь, как показано ниже:

jQuery.parseJSON('{"name":"John"}');
0 голосов
/ 02 марта 2011

Ссылка 'this', которую вы используете, ссылается на jQuery 'this'. Поэтому ваш ID не определен.

Предполагая, что вы пытаетесь получить идентификатор 'obj' из аргумента своей функции, я бы переписал функцию следующим образом:

jQuery.fn.your_func_name = function(){

   $.ajax({
       type: "POST",
       url: "Pages.aspx/EditPage",
       data: "{'nodeID': '" + $(this).attr('id') + "'}",
       contentType: "application/json; charset=utf-8",
       dataType: "json",
       success: function (msg) {
       // Replace the div's content with the page method's return.

  });

}//function

Используйте это так:

$('#some_element').your_func_name();
0 голосов
/ 02 марта 2011

После отладки в Chrome я обнаружил, что идентификатор не определен.Я переписал параметр даты на:

data: '{"nodeID": "' + obj.attr('id') + '"}',

, потому что obj - это узел, на котором я сейчас нахожусь в jsTree.

Спасибо всем, кто напоминает мне об отладке в FF или Chromeи корректировка кавычек.

0 голосов
/ 02 марта 2011

Несколько вещей, чтобы попробовать

  1. Удалить contentType
  2. Удалить кавычки вокруг клавиш JSON
  3. Поменяйте местами одинарные и двойные кавычки

Это будет выглядеть так:

function (obj) {
   $.ajax({
       type: "POST",
       url: "Pages.aspx/EditPage",
       data: '{nodeID: "' + $(this).attr('id') + '"}',
       dataType: "json",
       success: function (msg) {
               alert('success!');
       }
   });
}
0 голосов
/ 02 марта 2011

попробуйте это:

data: "{nodeID: '" + $(this).attr('id') + "'}",

Редактировать: для получения идентификатора вы можете использовать this.id

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...