4

私は ajax リクエストを行っていますが、成功のコールバックでページを更新して変更を反映したいと考えています。そのページを更新するときに、同じページにパラメーターを渡そうとしています。

URL は次のようなものです。

http://localhost:8080/details#component/12以下に示すように、パラメーターを追加しています。

window.location.href += "?code=approved";
window.location.reload();

上記は Firefox では機能しますが、IE では機能しません。ここで助けてもらえますか?

クリス。

4

3 に答える 3

1

が空の場合window.location.hash、正しい関数を使用せずに location.href に新しい値を割り当てることはできません (少なくともクロムでテストされています)。

を試してくださいwindow.location.replace

if (!window.location.hash) 
    {
        window.location.replace(window.location.href + "?code=approved")
    } 
于 2014-11-13T14:45:51.363 に答える
1

これらを IE で使用してみてください。

window.location.reload(false); // To get page from cache
window.location.reload(true); // To get page from server
于 2012-05-19T13:25:39.450 に答える
1

ハッシュが問題です。データを URL フラグメント (# の後の部分) に追加します。フラグメントはサーバーに送信されません。つまり、URL は変更されないため、ページを再度リクエストする必要はありません。ブラウザの URL に「#some_text」を手動で追加してみて、何が起こるかを確認してください ;)

次のようなことを試してください:

var newloc = document.location.href;
if(document.location.hash){
    // remove fragment
    newloc = newloc.substr(0, newloc.indexOf(document.location.hash));
}
newloc += document.location.search ? ";" : "?"; // prevent double question mark
newloc += 'code=approved';
// append fragment back to url
于 2012-05-19T14:10:46.907 に答える