getJSON не работает с кнопкой ввода - PullRequest
0 голосов
/ 20 ноября 2010

если у меня есть a href getJSON работает нормально, как и ожидалось (окно с сообщением о предупреждении), но если я использую input button, то это не работает (без предупреждающего сообщения), ниже приведен мой пример использования a hrefи input button, я открываю firebug и не вижу никаких данных в ответ.

работает

<a href="'http://host/Myservice.svc/GetCustomerBy?GetCustomerBy?GetCustomerBy=?">GetCustomerBy</a>


 $(function () {
            $('a').click(function () {
                $.getJSON(this.href, { id: '2' }, function (customer) {
                    alert(customer.Name);
                    alert(customer.Address);
                });
                return false;
            });
        });

не работает

    <input type="button" id="driver" value="Load Data" />

  $("#driver").click(function (event) {

        $.getJSON('http://host/Myservice.svc/GetCustomerBy?GetCustomerBy=?', { id: '2' }, function (customer) {

            alert(customer.Address);
            alert(customer.Name);
        });
    });

Ответы [ 2 ]

2 голосов
/ 20 ноября 2010

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

$(function() {
    $('#driver').click(function() {
        $.getJSON('http://host/Myservice.svc/GetCustomerBy?GetCustomerBy=?', { id: '2' }, function (customer) {
            alert(customer.Address);
            alert(customer.Name);
        });
    });
});

Обратите внимание, что вызов обернут в $ (документ) .ready и вам не нужно return false.Также нет необходимости использовать аргумент event для анонимного обратного вызова.

Также сравнение вашего адреса href не совпадает с тем, который вы используете в кнопке.В href у вас есть:

http://host/Myservice.svc/GetCustomerBy?GetCustomerBy?GetCustomerBy=?

, тогда как в кнопке у вас есть:

http://host/Myservice.svc/GetCustomerBy?GetCustomerBy=?

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

0 голосов
/ 20 ноября 2010

Ваши URL выглядят неправильно - слишком много?и GetCustomerBy, кажется, повторяется.Не должно ли это быть:

<input type="button" id="driver" value="Load Data" />

$("#driver").click(function (event) {

    $.getJSON('http://host/Myservice.svc/GetCustomerBy', { id: '2' }, function (customer) {

        alert(customer.Address);
        alert(customer.Name);
    });
});

Это приведет к URL-адресу, который выглядит как http://host/Myservice.svc/GetCustomerBy?id=2

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