19

一見単純な質問がありますが、答えが見つかりません。POST リクエストの結果として生成された Web ページがあり、URL にアンカー (#) が含まれている可能性があります。このページをJavaScriptの GET リクエストとしてリロードしたいと考えています。したがって、この質問に似ていますが、実際には POST に関する警告だけでなく、POST を回避したいと考えています。

たとえば、ページが「http://server/do/some?thing# 」への POST リクエストの結果である場合、「 http://server/do/some?thing 」という URLを GET としてリロードします . 私が試したら

window.location.reload(true);

これにより、IE は POST を試行します。私が代わりに行う場合:

window.location = window.location.href;

URL にアンカーがある場合、これは何もしません。「#whatever」を取り除くために自分で文字列操作を行う必要がありますか、それともこれを行うためのより簡単で「より良い」方法はありますか?

4

3 に答える 3

20

これまでに思いついた最高のものは次のとおりです。

function reloadAsGet()
{
    var loc = window.location;
    window.location = loc.protocol + '//' + loc.host + loc.pathname + loc.search;
}
于 2009-08-04T01:23:15.147 に答える