কোনও বুকমার্কে একটি HTTP POST অনুরোধ বা কোনও জিইটি অনুরোধের সাথে একই রকম কিছু করার অনুরোধ


25

আপনি একটি GET অনুরোধের সাথে একটি বুকমার্ক সংরক্ষণ করতে পারেন:

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

আপনি Chrome এ কোনও ভাবে পোষ্ট অনুরোধটি সংরক্ষণ করতে পারেন? সম্ভবত একটি প্লাগইন সঙ্গে? নাকি ফায়ারফক্সে?

ধারণাটি হল যে আমি এটি একটি বুকমার্কে সংরক্ষণ করি এবং প্রত্যেক সময় একটি ফর্ম পূরণ করার পরিবর্তে এটি দ্রুত পুড়িয়ে ফেলি।



1
আপনার ওএস উপর নির্ভর করে, আপনি ব্যবহার করতে পারেন curl থেকে পরিবর্তে একটি ফাইল থেকে POST অনুরোধ পাঠান
slhck


Greasemonkey এক্সটেনশান চেক আউট, FF এবং ক্রোম জন্য উপলব্ধ।
ott--

উত্তর:


17

ধারণাটি হল যে আমি এটি একটি বুকমার্কে সংরক্ষণ করি এবং প্রত্যেক সময় একটি ফর্ম পূরণ করার পরিবর্তে এটি দ্রুত পুড়িয়ে ফেলি।

এই উদ্দেশ্যে, নিম্নলিখিত 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

এই এক সাইট জন্য সোজাভাবে কাজ করেছে, thx! যাইহোক, AJAX ব্যবহার করে অন্য কোনও সাইটের জন্য (আমার মনে হয়) এটি এখনও কাজ করে না (আমি হয়তো ভুলটি করছি); AJAX দ্বারা পেতে / পোস্ট জিনিস পরিচালনা করা হয় তাহলে sth যা পরিবর্তন হবে?
nutty about natty

5

একটি ক্রস ব্রাউজার সমাধান খুঁজছেন যা অ্যাড-অন বা বহিরাগত ফাইলগুলিতে নির্ভর করতে হবে না, এই সিনট্যাক্স ব্যবহার করে জাভাস্ক্রিপ্ট সরাসরি এটির জন্য একটি বুকমার্কে স্থাপন করা যেতে পারে:

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();   })();

সহজে আরও পাঠযোগ্য এবং একক লাইনে রূপান্তরিত করতে অনেকগুলি স্পেস ব্যবহার করা যেতে পারে। উপরে উল্লিখিত উদাহরণে "\" \ N \ N এর মতো নোটপ্যাড ++ তে এটি মাল্টি লাইনে রূপান্তরিত করার জন্য প্রতিস্থাপিত করা যেতে পারে। তারপরে এটি একক লাইনে রূপান্তরিত করতে \ r \ n প্রতিস্থাপন এবং প্রতিস্থাপন করা "" এর সাথে একক লাইনে রূপান্তর করে। যে এটা সামান্য কম মন নমন করে তোলে ...


3

অন্যান্য উত্তর বিল্ডিং!

কোডটির ডিবাগ সংস্করণ, প্লাস ক্লিনআপ এবং 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(); */
})();

স্পষ্টতই সংশ্লিষ্ট এইচটিএমএল ছাড়া, ট্যাগ নাম 'ফর্ম' সহ উপাদানটি অস্তিত্বহীন নাও হতে পারে ... এবং এটি যদি আরও খারাপ হয় তবে। উপরে এই ভাল প্রদর্শন করে। মনে রাখবেন যে ক্রোমিয়াম জাভাস্ক্রিপ্টে: URIs / বুকমার্কগুলি একটি নতুন ট্যাবে কাজ করে না, আপনাকে প্রথমে একবার নেভিগেট করতে হবে। এটি নথির বস্তুটিকে পপুলিয়ে রাখে, তবে এমনকি একটি জাভাস্ক্রিপ্ট: সতর্কতা ('টি'); কিছুই না।

আমি নিম্নলিখিত সুপারিশ।

(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()}();

সম্পাদনা:  একটি কাজের উদাহরণ প্রদান করুন।

মিনিয়াপলিস, এমএন, আমেরিকাতে ফ্রি WiFi ESSID "USIW ফ্রি ওয়াইফাই" অ্যাক্সেস করার জন্য এটি ব্যবহার করুন। ব্যবহার করার পরে 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()}();

2

আধুনিক ব্রাউজার বৈশিষ্ট্য এবং 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 এবং ফর্মডটা যথাযথভাবে প্রতিস্থাপন করুন।

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()}

0

যখন আমি একই সমস্যার মুখোমুখি হই, তখন ফায়ারফক্সের জন্য এই সুন্দর অ্যাড-অনটি খুঁজে পেয়েছি: পোস্ট বুকমার্ক

বুকমার্কের সাথে আপনার বুকমার্কযুক্ত পোষ্ট অনুরোধে চারটি সহজ পদক্ষেপ (কোন জাভাস্ক্রিপ্ট প্রয়োজন নেই):

  1. আপনি যে ফর্মটি বুকমার্ক করতে চান তার সাথে পৃষ্ঠাটি খুলুন এবং ফর্মটিকে "সাধারণ" উপায়ে পূরণ করুন। এখনো জমা না।
  2. ওয়েব ডেভেলপার সরঞ্জাম খুলুন - & gt; নেটওয়ার্ক বিশ্লেষণ।
  3. আপনার ফর্ম জমা দিন। জমা নেটওয়ার্ক বিশ্লেষণ প্রদর্শন করা হবে। যেখানে আপনি "সম্পাদনা এবং আবার পাঠান" নির্বাচন করতে পারেন এবং "অনুরোধ-সংস্থা" অনুলিপি করতে পারেন।
  4. ফর্ম পৃষ্ঠায় একটি বুকমার্ক তৈরি করুন এবং স্ট্রিং যোগ করুন POSTDATA={YOUR_REQUEST_BODY_HERE} বুকমার্ক হিসাবে বিবরণ

0

আমি জানি এটি একটি গ্রহণযোগ্য উত্তর দিয়ে একটি পুরানো প্রশ্ন। যে উত্তর বেশ ম্যানুয়াল যদিও, ব্যবহারকারীর জন্য জাভাস্ক্রিপ্ট প্রোগ্রামিং প্রচেষ্টা প্রয়োজন। অন্যান্য ব্রাউজার অ্যাডসন / এক্সটেনশান / প্লাগইন তালিকাভুক্ত রয়েছে কিন্তু তারা সর্বশেষ ব্রাউজার সংস্করণের সাথে কাজ করে না বা এখনও বেশ ম্যানুয়াল। আমি একটি বুকমার্কলেট লিখেছিলাম যা একটি বুকমার্কলেট তৈরি করে (যার মধ্যে @ রফিশীন এর উত্তর থেকে সংশোধিত কোড অন্তর্ভুক্ত)। আমার বুকমার্ক এখানে: https://github.com/GlenCoakley/createFormSubmittingBookmarklets

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.