IE ブラウザでは、最初は ajax リクエストが正常に送信され、2 回目ではバックグラウンド インターフェイスへの呼び出しがキャッシュから行われたことが示されています。

写真の通り、layuiフレームワークを使用しているため、Table.on()イベントの影響でIEブラウザ上にリクエストが発生しているのかと思いましたが、最初のリクエストはバックグラウンドインターフェースに呼び出すことができ、データを保存することもできますが、2 回目の送信は失敗し、呼び出しインターフェイスがキャッシュからのものであることがわかります。キャッシュを削除すると、再度正常に送信できるようになります。

情報を確認したところ、ajaxのキャッシュ原理は、Ajaxによるデータ送信が成功した後、リクエストされたURLと返されたレスポンス結果をキャッシュに保存し、次回同じリクエストを送信するためにAjaxを呼び出す際にキャッシュされるというものでした。データをキャッシュから直接取り出すことで、ページの応答速度とユーザーエクスペリエンスを向上させることができます。現在、これにはパラメータを含めて URL をまったく同じ 2 回リクエストする必要があります。現時点では、ブラウザはサーバーと対話しません。

 

したがって、この問題では、URL の後に乱数またはタイムスタンプを追加するだけで済みます。そうすれば、リクエストするたびに異なる URL になり、呼び出しは成功します。

 

解決:

1. Ajax URL パラメータの後に「?num= + Math.random()」を追加します。 

2. 上記と同様に、URL パラメータの後に「?timestamp= + new Date().getTime()」を追加します。

おすすめ

転載: blog.csdn.net/PhilipJ0303/article/details/100558569