Вызов JavaScript для метода страниц ASP.NET, работающего в IE, но не в Chrome / Firefox - PullRequest
0 голосов
/ 30 марта 2012

У меня есть следующий код на странице ASPX, который при щелчке значка PayPal соединяется с методом страницы и получает маркер PayPal сеанса.Когда это выполняется в IE, это работает отлично, но когда это выполняется в Chrome или Firefox, вызов jQuery $ .ajax немедленно возвращает ошибку кода 0.

$(document).ready(function () {
            $("input.PayPal").click(function () {
                $.ajax({
                    type: "POST",
                    url: "MyCurrentPage.aspx/PayPal",
                    data: "{IdRecibo : " + $(this).attr("data-value") + "}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (result) {
                        if (result.d.Result == "Success") {
                            window.location.href = result.d.Redirect;
                        }
                        else
                            alert("El servicio de PayPal está temporalmente deshabilitado.");
                    },
                    error: function (xhr, ajaxOptions, thrownError) {
                        alert(xhr.status);
                        alert(thrownError);
                    }
                });
            });

Ответы [ 2 ]

2 голосов
/ 02 апреля 2012

Небольшое изменение кода решает проблему с Chrome.Похоже, что JSON-ответ метода страницы ASP.NET анализируется неправильно, если return false; не является последней частью вызова $.ajax.

Это рабочий код:

    $("input.PayPal").click(function () {
        $.ajax({
            type: "POST",
            url: '<%= Page.Request.Url.AbsolutePath + "/PayPal" %>',
            data: JSON.stringify({ IdRecibo: $(this).attr("data-value") }),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            cache: "false",
            timeout: 10000,
            success: function (result) {
                if (result.d.Result == "Success") {
                    window.location.href = result.d.Redirect;
                }
                else
                    alert("El servicio de PayPal está temporalmente deshabilitado.");
            },
            error: function (xhr, ajaxOptions, thrownError) {
                alert(xhr.status);
                alert(thrownError);
            }
        });
        return false;
    });
0 голосов
/ 30 марта 2012

Ваш JSON не выглядит хорошо сформированным. Попробуйте

"{ 'IdRecibo': 'value'}"
...