window.location.hrefのURLのデータ量が多すぎる場合の解決策_javascriptスキル

WBOY
リリース: 2016-05-16 17:07:42
オリジナル
1381 人が閲覧しました

今日私たちが遭遇した問題について話しましょう

Excel をエクスポートするプロセスでは、ボタンを押した後に大量のデータをバックグラウンドに転送する必要があります。最初のアプローチは次のとおりです。

コードをコピー コードは次のとおりです。

var actionUrlSetData = "****Action !exportDatas.action" "?now=" new Date().getTime();
window.location.href= actionUrl "&" data;

上記のデータは非常に長い文字列です。

Firefox、Google Chromeでは問題ないのですが、IE9では正常にエクスポートできません(他のIEでは試していないので同じはずです)

この問題の原因は、ブラウザによって URL 解析の長さ制限が異なるため、IE が最も小さいため、問題が発生したためです。


Microsoft Internet Explorer (ブラウザ)
IE ブラウザの URL 制限は 2083 文字です。この数値を超えると、送信ボタンは応答しません。

Firefox (ブラウザ)
Firefox ブラウザの URL の長さ制限は 65,536 文字です

Safari (ブラウザ)

URL の最大長制限は 80,000 文字です。

Opera (ブラウザ)

URL の最大長は 190,000 文字に制限されています。

Google (クローム)

URL の最大長は 8182 文字に制限されています

ここで、WEB サーバーにも URL の長さの制限があることにも注意してください。 !

そのため、Get メソッドは使用できなくなり、post を使用して値を渡す方法しか見つかりません。適切かどうかわかりませんが、アドバイスをお願いします。つまり、この機能は実現できます

このアイデアは、post を使用して長い文字列をバックグラウンドに転送し、セッションに保存してから、post のコールバック メソッドで window.location.href

を使用することです。

コードは次のとおりです:

コードをコピー コードは次のとおりです。

$.post(actionUrlSetData,mapList,function (){
var actionUrl = path "/***action!exportDatas.action" "?now=" new Date().getTime();
var actionUrl = path "/***action!exportDatas .action" "?now=" new Date().getTime();
var actionUrl = path " " 🎜> });
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート