jquery live и обратные вызовы через сервисы wcf - PullRequest
0 голосов
/ 21 апреля 2010

Я пишу веб-приложение с asp.net, c # и jquery. Большую часть времени я пишу динамический HTML-код в браузер и использую различные веб-службы для получения необходимого контента.

Мой звонок в сервис:

function WriteProducts(currentIndex, selectedCategoryId, callback) {
    var d = new Date();
    MyAppServices.GetProducts(selectedCategoryId, currentIndex, 8,
        d.getTime().toString(), callback, function func() {
             alert('failure'); 
        });
}

Запрос обычно переводится на это (с помощью firebug я его отслеживал):

http://localhost:8080/MyApp/MyAppServices.svc/GetProducts?categoryId=0&fromIndex=0&toIndex=8&randomNumber=%221271800014441%22

Проблема начинается, когда часть HTML-элементов управления, динамически отображаемых, должна реагировать на события щелчка. Это когда я начинаю использовать живой метод jquery:

$('.filter').live('click', function(event) {
    WriteProducts(0, selectedCategoryId, PopulateDivs);
});

Теперь по какой-то причине запрос, передаваемый на сервер, становится таким:

http://localhost:8080/MyApp/MyAppServices.svc/GetProducts?categoryId=**%2217%22**&fromIndex=0&toIndex=8&randomNumber=%221271799783355%22

откуда взялись эти% 22? Если я их вынимаю, запрос проходит успешно. Я понятия не имею, кто вставил эти% 22, но они вызывают хаос здесь!

Ребята, у вас, возможно, есть подсказка?

Ответы [ 2 ]

1 голос
/ 21 апреля 2010

Возможно, строку даты необходимо преобразовать в число. Похоже, что скрипт добавляет кавычки вокруг строк. Итак, попробуйте это:

function WriteProducts(currentIndex, selectedCategoryId, callback) {
    var d = new Date().getTime();
    MyAppServices.GetProducts(selectedCategoryId, currentIndex, 8,
        d, callback, function func() {
             alert('failure'); 
        });
}

Редактировать: Обновлен ответ

1 голос
/ 21 апреля 2010

% 22 совпадает с ", поэтому я предполагаю, что переменная selectedCategoryId на самом деле является строкой со значением" 17 ".

Попробуйте установить точку останова и проверить значение.

Трудно сказать что-то убедительное, поскольку вы не включили весь соответствующий код.

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