Веб-метод не выполняется в сафари (обратный вызов $.ajax)

У меня есть следующий код.

ASPX-страница

<a href="AnyASPXPageOfWebsite.aspx" onclick="javascript:CallJQuery();" > Set Price </a>

JS-код

function CallJQuery() {

            var prc = document.getElementById('<%= hdnPrice.ClientID %>');
            var strPrc = prc.value;

            $.ajax({
                type: "POST",
                url: "/Services/TestService.asmx/SetPrice",
                data: {Price : "'"+ strPrc + "'"},
                dataType: "json",

                error: function(xml, status) {
                    alert('Error is ' + status);
                },
                success: function(xml, status) {
                    alert('suceess' + status );
                }

            });
}

Веб-метод в TestService.asmx

 [WebMethod(EnableSession = true)]
    public string SetPrice(string Price)
    {
        HttpContext.Current.Session["ProdPrice"] = Price;
        return "success";
    }

Мой код работает во всех браузерах, кроме SAFARI. Я устанавливаю точку останова в методе SetPrice(), но он не выполняется в случае сафари. Также выполняется функция успеха и отображается предупреждающее сообщение.

В чем причина сафари, этот метод не выполняется?


person ravidev    schedule 20.06.2012    source источник


Ответы (2)


Может помочь использование управления сервером и вызов CallJQuery() из кода программной части.

person Rohit    schedule 20.06.2012

Я много искал решение, применил много кодов, но ничего не работает. Я пришел к выводу, что следовать в сафари невозможно. Если на странице asp.net С#, если у вас есть тег со свойством href, установленным на «любую страницу aspx или html», и тег имеет событие «onclick», которое выполняет некоторую функцию JS, которая затем выполняет «веб-метод», используя обратный вызов JQuery. Эта ситуация не работает, и веб-метод не выполняется в таком сценарии, потому что браузер Safari выполняет функцию JS, а затем переходит к странице (установленной в свойстве href), но не вызывает веб-метод.

это все согласно моим исследованиям.

person ravidev    schedule 21.06.2012