拡張機能 post-blocker
- カテゴリ:
- ChromeExtension
- コメント数:
- Comments: 0
◆ POST リクエストをブロックして内容を確認できるツール
自分が必要だったので作った拡張機能です
あるウェブサービスに対して自動で POST を行いたいです
例えば 別のツールで一部のデータだけ入力して確定すると 残りは設定などに応じて自動で補って 指定してあるページに POST リクエストを送るものです
ブログで言えば 「拡張機能のポップアップ画面からマークダウンのような専用形式のテキスト 1 つを書いて確定すれば 1 行目をタイトル 2 行目を csv 形式のタグ 残りを HTML 変換したものを本文として投稿する」 みたいなものです
そういうツールを作るとき 最初に POST 対象のページにはどういうパラメータを送ればいいのかを調べないといけません
調べるために何度かテストで POST をしたいのですが そのサービス自体は 外部のものなのでテスト用途で適当なデータを送るのは良くないです
devtools で form 要素の action を書き換えて自分の管理してるページに POST させるということも出来ますが 必要になるたび毎回書き換えるのは大変ですし 中には JavaScript で色々処理した上で Ajax で POST してる場合もあります
action の書き換えだとちょっと怖いので 安全のために POST リクエスト自体をブロックしたいです
webRequest という API で POST の場合は拡張機能のページにリダイレクトさせることで対応しています
「javascript:void0」にリダイレクトさせて完全ブロックもできるようですが ブロックするというより POST した内容が知りたいというのが本来の目的なので完全にブロックしてしまわず devtools で POST 内容を確認できるようにしています
ちょっとした裏技として
こんな風に POST 内容を表示するサイトを alternative に登録すれば devtools を使わなくても POST で遷移したページで見れます
あるウェブサービスに対して自動で POST を行いたいです
例えば 別のツールで一部のデータだけ入力して確定すると 残りは設定などに応じて自動で補って 指定してあるページに POST リクエストを送るものです
ブログで言えば 「拡張機能のポップアップ画面からマークダウンのような専用形式のテキスト 1 つを書いて確定すれば 1 行目をタイトル 2 行目を csv 形式のタグ 残りを HTML 変換したものを本文として投稿する」 みたいなものです
そういうツールを作るとき 最初に POST 対象のページにはどういうパラメータを送ればいいのかを調べないといけません
調べるために何度かテストで POST をしたいのですが そのサービス自体は 外部のものなのでテスト用途で適当なデータを送るのは良くないです
devtools で form 要素の action を書き換えて自分の管理してるページに POST させるということも出来ますが 必要になるたび毎回書き換えるのは大変ですし 中には JavaScript で色々処理した上で Ajax で POST してる場合もあります
action の書き換えだとちょっと怖いので 安全のために POST リクエスト自体をブロックしたいです
POST をブロックする拡張機能
ということで POST リクエストをブロックする拡張機能を作りましたwebRequest という API で POST の場合は拡張機能のページにリダイレクトさせることで対応しています
「javascript:void0」にリダイレクトさせて完全ブロックもできるようですが ブロックするというより POST した内容が知りたいというのが本来の目的なので完全にブロックしてしまわず devtools で POST 内容を確認できるようにしています
ちょっとした裏技として
localStorage["alternative"] = JSON.stringify("http://httpbin.org/post")
こんな風に POST 内容を表示するサイトを alternative に登録すれば devtools を使わなくても POST で遷移したページで見れます