Сохранение HTTP-запроса POST в закладке или что-то подобное, как с запросом GET

Вы можете сохранить закладку с помощью запроса GET следующим образом:

http://url.com/service?variable=value 

Вы можете каким-либо образом сохранить запрос POST в Chrome? Может быть, с плагином? Или, может быть, в Firefox?

  • Импорт закладок в firefox из txt-файла
  • Есть ли способ закладки всех вкладок в Chrome?
  • IE8 - Не удается добавить сайты в панель избранного
  • Где найти Избранное в Google Chrome?
  • Закладки замедляют запуск Firefox?
  • Как сохранить закладки Chrome в актуальном состоянии?
  • Идея заключается в том, что я храню это в закладке и запускаю ее быстро, вместо того, чтобы каждый раз заполнять форму.

  • Как сбросить поисковые системы Chrome по умолчанию?
  • Сбросить размер окна открытого файла в Google Chrome?
  • Запустите Google Chrome на Mac с помощью команд командной строки
  • Переключение User-Agent в Firefox 4
  • Подключение к SSH из-за прокси-сервера HTTP
  • Самый легкий способ запустить приложение Google Hangouts Chrome на Mac
  • 5 Solutions collect form web for “Сохранение HTTP-запроса POST в закладке или что-то подобное, как с запросом GET”

    Идея заключается в том, что я храню это в закладке и запускаю ее быстро, вместо того, чтобы каждый раз заполнять форму.

    Для этой цели будет отображаться следующая страница HTML. Он должен работать в большинстве браузеров.

     <html> <head> <title>getToPost</title> <script> function getToPost() { var form = document.getElementsByTagName('form')[0]; form.style.visibility = 'hidden'; form.action = document.location.hash.substr(1); var search = decodeURIComponent(document.location.search); search = search.substr(1).split('&'); for(var i = 0, j = search.length, input; i < j; i++) { input = document.createElement('input'); search[i] = search[i].split('='); input.name = search[i][0]; input.value = search[i][1]; form.appendChild(input); } form.submit(); } </script> </head> <body onload="getToPost()"> <form method="POST"></form> </body> </html> 

    Сохраните его как C:\getToPost и вы можете пометить следующий URL-адрес:

     file:///C:/getToPost?name1=value1&name2=value2#http://url.com/service 

    Вы сможете использовать большинство символов в именах или значениях буквально. Кодируйте следующее, как обычно:

     # -> %23 % -> %25 & -> %26 = -> %3D 

    Если вы ищете кросс-браузерное решение, которое не нужно полагаться на надстройки или внешние файлы, Javascript можно поместить в закладку напрямую для достижения этого, используя этот синтаксис:

     javascript:(function(){ <Your Javascript code goes here> })(); 

    Заимствуя некоторый код из ответа Дениса, чтобы проиллюстрировать:

     javascript:(function() { var form = document.getElementsByTagName('form')[0]; form.style.visibility = 'hidden'; form.method = 'post'; form.action = 'https://your.urlgoes.here/build?delay=0sec'; var search = 'name=ENVIRONMENT&value=production&name=DEPLOYTYPE&value=Incremental&name=BRANCH&value=master&statusCode=303&redirectTo=.&json={"parameter": [{"name": "ENVIRONMENT", "value": "production"}, {"name": "DEPLOYTYPE", "value": "Incremental"}, {"name": "BRANCH", "value": "master"}], "statusCode": "303", "redirectTo": "."}&Submit=Build'; search = search.substr(1).split('&'); for(var i = 0, j = search.length, input; i < j; i++) { input = document.createElement('input'); search[i] = search[i].split('='); input.name = search[i][0]; input.value = search[i][1]; form.appendChild(input); } form.submit();} )(); 

    Недостатком является то, что все это должно идти по одной строке, потому что закладка является отдельной строкой, поэтому она может немного сгибаться, чтобы работать. Это происходит в самой закладке:

     javascript:(function(){ var form = document.getElementsByTagName('form')[0]; form.style.visibility = 'hidden'; form.method = 'post'; form.action = 'https://your.urlgoes.here/build?delay=0sec'; var search = 'name=ENVIRONMENT&value=production&name=DEPLOYTYPE&value=Incremental&name=BRANCH&value=master&statusCode=303&redirectTo=.&json={"parameter": [{"name": "ENVIRONMENT", "value": "production"}, {"name": "DEPLOYTYPE", "value": "Incremental"}, {"name": "BRANCH", "value": "master"}], "statusCode": "303", "redirectTo": "."}&Submit=Build'; search = search.substr(1).split('&'); for(var i = 0, j = search.length, input; i < j; i++) { input = document.createElement('input'); search[i] = search[i].split('='); input.name = search[i][0]; input.value = search[i][1]; form.appendChild(input); } form.submit(); })(); 

    Ряд пробелов можно использовать для простого преобразования в нечто более читаемое и обратно в одну строку. В приведенном выше примере «» можно заменить на \ r \ n чем-то вроде Notepad ++, чтобы преобразовать его в многострочный. Затем, чтобы преобразовать его в одну строку, найдите и замените замену на \ r \ n на «", преобразует ее обратно в одну строку. Это делает его немного меньше ума изгиба …

    Опираясь на другие ответы!

    Отладочная версия кода плюс очистка И jsbeautifier.org/.

     (function() { var ThisAction = 'https://your.urlgoes.here/build?delay=0sec'; /* A little JSON never hurt anyone */ var ThisPost = { name: 'ENVIRONMENT', value: 'production', name: 'DEPLOYTYPE', value: 'Incremental', name: 'BRANCH', value: 'master', statusCode: '303', redirectTo: '.', json: '{"parameter": [{"name": "ENVIRONMENT", "value": "production"}, {"name": "DEPLOYTYPE", "value": "Incremental"}, {"name": "BRANCH", "value": "master"}], "statusCode": "303", "redirectTo": "."}', Submit: 'Build' }; /* Help us locate this function */ console.trace(); /* See what we are looking at */ console.log(document); var form = document.getElementsByTagName('form')[0]; form.style.visibility = 'hidden'; form.method = 'post'; form.action = ThisAction; for (var key in ThisPost) { if (ThisPost.hasOwnProperty(key)) { input = document.createElement('input'); input.name = key; input.value = ThisPost[key]; form.appendChild(input); } } /* form.submit(); */ })(); 

    Очевидно, что без соответствующего html элемент с именем тега «форма» вполне может не существовать … и все хуже, если это произойдет. Вышеприведенное показывает это хорошо. Обратите внимание, что в хромовом javascript: URIs / Bookmarks не работают на новой вкладке, вы должны сначала перемещаться. Это заполняет объект документа, но даже просто javascript: alert ('t'); ничего не делает.

    Я предлагаю следующее.

     (function() { var ThisAction = 'https://your.urlgoes.here/build?optional=uri_get'; /* A little JSON never hurt anyone */ var ThisPost = { multiple: 'value', key: 'pairs', or: 'JSON like so...', note: 'the double quotes and last item with NO trailing comma.', json: '{parameter: [{name: "stuff"}]}' }; var form = document.createElement('form'); form.style.visibility = 'hidden'; form.method = 'post'; form.action = ThisAction; for (var key in ThisPost) { if (ThisPost.hasOwnProperty(key)) { var input = document.createElement('input'); input.name = key; input.value = ThisPost[key]; form.appendChild(input); } } document.body.appendChild(form); form.submit(); })(); 

    Удалите настройки отладки, очистите пример ввода для лучшей ясности ожидаемого. Запустите через http://jscompress.com/ или что угодно и получите одну строку.

     !function(){var e="https://your.urlgoes.here/build?optional=uri_get",t={multiple:"value",key:"pairs",or:"JSON like so...",note:"the double quotes and last item with NO trailing comma.",json:'{parameter: [{name: "stuff"}]}'},i=document.createElement("form");i.style.visibility="hidden",i.method="post",i.action=e;for(var o in t)if(t.hasOwnProperty(o)){var a=document.createElement("input");a.name=o,a.value=t[o],i.appendChild(a)}document.body.appendChild(i),i.submit()}(); 

    Изменить: укажите рабочий пример.

    В Миннеаполисе, штат Миннесота, США используют это для доступа к бесплатному Wi-Fi ESSID «USIW Free WiFi». После использования https://login.usiwireless.com/mplsfree/logon.php?originalurl=www.google.com/ для регистрации учетной записи им нужна кредитная карта по причинам злоупотребления.

    Используйте это для входа в сеть с очевидными заменами.

     javascript:!function(){var e="https://login.usiwireless.com/mplsfree/logon.pl",o={usernameLogin:"USER",passwordLogin:"PASSWORD",originalurl:"www.google.com/"},n=document.createElement("form");n.style.visibility="hidden",n.method="post",n.action=e;for(var i in o)if(o.hasOwnProperty(i)){var t=document.createElement("input");t.name=i,t.value=o[i],n.appendChild(t)}document.body.appendChild(n),n.submit()}(); 

    Когда я столкнулся с той же проблемой, я нашел это красивое дополнение для Firefox: Bookmark POST

    Благодаря этой закладке четыре простых шага к вашему запрошенному POST-запросу (без необходимости использования javascript):

    1. Откройте страницу с формой, которую вы хотите пометить, и заполните форму «типичным» способом. НЕ отправляйте еще.
    2. Откройте Инструменты для веб-разработчиков -> Сетевой анализ.
    3. Отправьте свою форму. Представление будет отображаться в сетевом анализе. Там вы можете выбрать «Редактировать и отправить снова» и скопировать «Тело запроса».
    4. Создайте закладку на страницу формы и добавьте строку POSTDATA={YOUR_REQUEST_BODY_HERE} в качестве описания закладок.

    Более короткая версия подхода букмарклета javascript с использованием современных функций браузера и ES6:

     post('https://example.com', {foo: 'bar'}) function post(url, formData) { const makeElem = (tag, props) => Object.assign(document.createElement(tag), props) const form = makeElem('form', { action: url, method: 'post', style: 'display: none' }) for (const [name, value] of Object.entries(formData)) { form.appendChild(makeElem('input', { name, value })) } document.body.appendChild(form) form.submit() } 

    Задайте в качестве цели закладки следующее значение и замените URL и formData соответствующим образом.

     javascript:post('https://example.com',{foo:'bar'});function post(a,b){const c=(e,f)=>Object.assign(document.createElement(e),f),d=c('form',{action:a,method:'post',style:'display: none'});for(const[e,f]of Object.entries(b))d.appendChild(c('input',{name:e,value:f}));document.body.appendChild(d),d.submit()} 
    Давайте будем гением компьютера.