3

IIS Express 経由で ASP.NET MVC サイトを実行しています。

たとえば、次のテスト ページを設定します。

<!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>
    <title></title>
</head>
<body>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" language="javascript" type="text/javascript"></script>

<script language="javascript" type="text/javascript">

    var carServiceUrl = "http://localhost:43889/cars";

    $(document).ready(function ()
    {
        $.ajaxSetup(
        {
            cache: false,
            dataType: "json"
            contentType: "application/json"
        });

    });

    get();

    function get()
    {
        var url = carServiceUrl;

        $.ajax({
            cache: false,
            type: "GET",
            async: true,
            url: carServiceUrl,
            dataType: "json",

            success: onGetCarsSuccess
        });
    }

 </script>

</body>
</html>

問題は、FireBug を起動してこのページを読み込むと、get() が起動されますが、クエリ文字列 (例: ) に何らかの値が追加されたリクエストであり、http://localhost:43889/cars?_=1381820301163どのようにそこに到達するのかわかりません。これを MVC プロジェクトで実行しているためなのか、IIS Express を介してこれらすべてを実行しているのか、それとも何なのかはわかりません。私は通常、ストレート IIS を使用しているのでよくわかりません。

?_=1381820301163なぜそれがリクエストに追加されているのかわかりません。jQuery呼び出しでそれを指定したことはありません。

4

2 に答える 2

4

jQuery ajaxのドキュメントから:

http://api.jquery.com/jQuery.ajax/

キャッシュ (デフォルト: true、dataType 'script' および 'jsonp' の場合は false)

タイプ: ブール値

false に設定すると、要求されたページがブラウザによってキャッシュされないように強制されます。注: キャッシュを false に設定すると、HEAD および GET リクエストでのみ正しく機能します。GET パラメータに「_={timestamp}」を追加することで機能します。このパラメーターは、GET によって既に要求された URL に対して POST が行われる IE8 を除いて、他のタイプの要求には必要ありません。

于 2013-10-15T07:09:16.007 に答える
3

削除してみてくださいcache: false

It works by appending "_={timestamp}" to the GET parameters.

http://api.jquery.com/jQuery.ajax/を参照してください。

于 2013-10-15T07:09:06.123 に答える