1

を多用する単一ページの Web サイトがありAJAXます。ユーザーアクションはすべて、次の形式で URL に送信されます。requests.aspx?obid=1&verb=shownotes

ホスティング プロバイダーのセッションの有効期限が 5 分に設定されていますが、これは短すぎます。私は彼らにそれを変えさせるのに苦労しています。

setInterval30 秒ごとにサーバーにリクエストを送信するために使用しようとしましたが、セッションは 5 分後に期限切れになります。リクエスト内の情報はsetIntervalユーザー リクエストのように見えますが、サーバーはだまされていないと思います。

でキャッシュを無効にしましjQueryた。

私はクッキーを使用しません。

setIntervalリクエストがサーバー自体にキャッシュされている可能性はありますか? このリクエストにランダムな文字列を追加する必要がありますか?

セッションが存続することを保証する最善の方法は何ですか?

編集: 以下は、Chrome 開発者ツールからコピーされた要求ヘッダーです。

一般的なユーザー アクションのリクエスト ヘッダー:

POST /requests.aspx?obid=0&otid=203&verb=display&param1=0&param2=0&param3=0 HTTP/1.1
Host: applify.co.za
Connection: keep-alive
Content-Length: 0
Accept: application/json, text/javascript, */*; q=0.01
Origin: http://applify.co.za
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36
DNT: 1
Referer: http://applify.co.za/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: ASP.NET_SessionId=4li3ilr0bsb5yc1uf5oy1pd1

setIntervalアクションのリクエスト ヘッダー:

POST /requests.aspx?obid=0&otid=545&verb=donothing&param1=&param2=&param3= HTTP/1.1
Host: applify.co.za
Connection: keep-alive
Content-Length: 0
Accept: application/json, text/javascript, */*; q=0.01
Origin: http://applify.co.za
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36
DNT: 1
Referer: http://applify.co.za/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: ASP.NET_SessionId=4li3ilr0bsb5yc1uf5oy1pd1

どちらもほとんど同じように見えます。

4

2 に答える 2

0

タイムスタンプのサフィックスを追加してみることができます。

(JS経由)

var t='requests.aspx?obid=1&verb=shownotes';
t+='&'+(1*new Date())

リクエストを続行します....

またはC#経由

...requests.aspx?obid=1&verb=shownotes&t=<%=DateTime.Now.Ticks%>

ps 設定した間隔コードを投稿して、確認できるようにします。

注意

  • jquery ajaxにcacheは、デフォルトであるプロパティがありtrueます(IMHO)

    に設定してみてくださいfalse。タイムスタンプを追加します。

  • aspx コードのコードを投稿できますか? (そこで ClearHeaders を実行するか、Response.End を実行するかを確認したい....

于 2013-08-05T07:01:29.240 に答える