0

ajax 呼び出しの後に別の aspx ページから読み込まれた gridview があります。問題は chrome/firefox/safari で動作することですが、ie9 を使用すると、最初の呼び出しでは ajax 呼び出しが正常に機能しますが、関数を再度呼び出そうとするとスローされますie9 dev ツールのネットワーク タブに 304 ステータスが表示され、グリッドビューが更新されません。

jqueryコードは次のとおりです。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="LoadCoursesGridViewHere.aspx.cs" Inherits="CoursesGridView" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="Scripts/jquery-1.8.2.js" type="text/javascript"></script>
</head>
<body>
    <form id="form1" runat="server">


                <div id="Gridview-container">
                    <asp:GridView ID="GridView1" runat="server">
                    </asp:GridView>
                </div>
                <asp:TextBox ID="TextBox1" runat="server" ViewStateMode="Disabled"></asp:TextBox>

                <%-- <asp:Button Text="text" ID="btn" OnClientClick=" __doPostBack('UpdatePanel1', '')" runat="server" />--%>
                <input type="button" id="btn" value="insert"/>



    </form>

    <script type="text/javascript">

        $("#btn").click(function () {
            var a = $("#TextBox1").val();

            $.ajax({
                url: 'WebService.asmx/insert',
                data: "{ 'name': '" + a + "' }",
                contentType: "application/json; charset=utf-8",
                type: "POST",
                success: function () {

                    // alert('insert was performed.');
                    $("#Gridview-container").empty();
                    $("#Gridview-container").load("GridViewCourses.aspx #GridView1");



                }
            });

        });


    </script>
</body>

</html>

ボタンをクリックすると、Web サービスの「挿入」を介してデータベースにテキストボックスの値が挿入され、別の aspx ページ内に配置されたグリッドビューがリロードされます。問題は、最初の挿入時に IE9 で実行するとすべて正常に動作するが、後続の挿入でグリッドビューがリロードされ、IE9 開発ツールのネットワーク タブに「304」と表示されることに気付きました。

4

1 に答える 1

1

応答304は、キャッシュから取得していることを意味します。ajax呼び出しでキャッシュをfalseに設定するか、

$.ajaxSetup({cache:false}); // this will set all ajax calls caching to false
于 2012-10-22T16:58:22.957 に答える