0

次のコードがあります。

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 の Web メソッド

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

私のコードは、SAFARI 以外のすべてのブラウザで動作します。 SetPrice() メソッドでブレークポイントを設定しますが、サファリの場合は実行されません。また、成功関数が実行され、警告メッセージが表示されます

メソッドが実行されないサファリの理由は何ですか?

4

2 に答える 2

0

私は解決策をたくさん探し、多くのコードを適用しましたが、何も機能しませんでした。サファリでは以下は不可能であると結論付けました。asp.net c#ページで、hrefプロパティが「任意のaspxまたはhtmlページ」に設定されたタグがあり、タグに「onclick」イベントがある場合、JS関数を実行し、JQueryコールバックを使用して「Webメソッド」を実行します。この状況は機能せず、このようなシナリオではwebmethodは実行されません。これは、safariブラウザーがJS関数を実行してから、ページ(hrefプロパティで設定)に移動しますが、webmethodを呼び出さないためです。

それは私の研究によるとすべてです。

于 2012-06-21T05:21:49.103 に答える
0

サーバー コントロールを使用していて、コード ビハインドから CallJQuery() を呼び出すと役立つ場合があります。

于 2012-06-20T12:28:50.293 に答える