質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

647閲覧

URLをGETメソッドで渡したい

hatsuzo

総合スコア56

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/11/11 07:18

いつもお世話になっています。

特定のページにURLを与えて画面に表示させた後に、テーブルに書き込む処理を行おうとしています。

javascript

1 var ur = "http://***/sample?para1=aaa&para2=bbb&para3=ccc"; 2 var url = "http://***/BM_mngr?" + 3 "upp_type=申請書" + "&upp_title=" + tt + "&upp_url=" + ur + "&upp_publish_dt=" + dt; 4 location.href = url;

成功したと思ったのですが、長いURLが途中で切れてしまうことので、調べてみたところ、
パラメタが複数あるページで&以降の文字が切れてしまうことに気づきました。
当たり前のことですが、処理を行う画面のURLのパラメタが複数あるので、URLの中の&と区別が付かないようです。
GETリクエストで行うところをPOSTリクエストに書き直してみたのですが、今度はURLが呼び出せなくなりました。
これはフレームワーク提供のインタフェイスなので、POST自体サポートしていないのが原因かもしれません。

javascript

1 var ur = "http://***/sample?para1=aaa&para2=bbb&para3=ccc"; 2 var form = document.createElement('form'); 3 form.method = 'POST'; 4 form.action = "http://***/BM_mngr"; 5 var itm01 = document.createElement('input'); 6 itm01.type = 'hidden'; 7 itm01.name = 'upp_type'; 8 itm01.value = "申請書"; 9 form.appendChild(itm02); 10 var itm02 = document.createElement('input'); 11 itm02.type = 'hidden'; 12 itm02.name = 'upp_title'; 13 itm02.value = tt; 14 form.appendChild(itm02); 15 var itm03 = document.createElement('input'); 16 itm03.type = 'hidden'; 17 itm03.name = 'upp_url'; 18 itm03.value = ur; 19 form.appendChild(itm03); 20 var itm04 = document.createElement('input'); 21 itm04.type = 'hidden'; 22 itm04.name = 'upp_publish_dt'; 23 itm04.value = dt; 24 form.appendChild(itm04); 25 document.body.appendChild(form); 26 form.submit();

初歩的なことをお聞きしていると思いますが、
特殊文字は、エスケープシーケンスを付けて渡すということを聞いたことがあるのですが、&文字というのは、変換後も&で始まる文字になるので、解決にはならないようです。

javascript

1var escapeHTML = function (str) { 2 return str 3 .replace(/&/g, '&amp;') 4 .replace(/</g, '&lt;') 5 .replace(/>/g, '&gt;') 6 .replace(/"/g, '&quot;') 7 .replace(/'/g, '&#39;'); 8};

アドバイス頂けたら有難いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

特殊文字は、エスケープシーケンスを付けて渡すということを聞いたことがあるのですが

それはHTMLに出力する際のエスケープです。URLに入れる場合はencodeURIComponentを使ってください。&%26と変換してくれます。

投稿2020/11/11 07:22

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatsuzo

2020/11/11 08:14

maisumakun さん 早々にコメントを頂きまして有難うございます。 無事解決しました。 初歩的なことですね。お手を煩わせてすみません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問