একটি ফর্ম জমা দেওয়ার জন্য আমি কীভাবে পোষ্ট হেডারে একটি কাস্টম ফিল্ড সেট করতে পারি?
একটি ফর্ম জমা দেওয়ার জন্য আমি কীভাবে পোষ্ট হেডারে একটি কাস্টম ফিল্ড সেট করতে পারি?
উত্তর:
এটি করা যায় না - এএফআইএকে।
তবে আপনি উদাহরণস্বরূপ jquery (যদিও আপনি এটি সরল জাভাস্ক্রিপ্ট দিয়ে করতে পারেন) ফর্মটি সিরিয়াল করতে এবং আপনার কাস্টম শিরোনাম যুক্ত করার সময় (AJAX ব্যবহার করে) প্রেরণ করতে পারেন।
serialize
পোষ্টের জন্য form-url-encoded
প্রস্তুত মানগুলিতে একটি এইচটিএমএল ফরমে পরিবর্তন করে এমন জ্যাকোরিটি দেখুন ।
আমার পরামর্শ হয় অন্তর্ভুক্ত করা হয়
পৃষ্ঠায় একটি কুকি মান সেট করুন এবং তারপরে এটি সার্ভারের পাশেই পড়ুন।
আপনি একটি নির্দিষ্ট শিরোলেখ সেট করতে সক্ষম হবেন না, তবে মানটি শিরোনাম বিভাগে অ্যাক্সেসযোগ্য হবে এবং সামগ্রী সামগ্রী নয়।
ফর্মডাটা ডকুমেন্টেশন থেকে :
এক্সএমএলএইচটিপিআরকোয়েস্ট স্তর 2 নতুন ফর্মডাটা ইন্টারফেসের জন্য সমর্থন যোগ করে। ফর্মডাটা অবজেক্টগুলি সহজেই কী / মান জোড়ার ফর্ম ক্ষেত্রগুলি এবং তাদের মানগুলি উপস্থাপন করে এমন একটি সেট তৈরি করার একটি উপায় সরবরাহ করে, যা পরে
XMLHttpRequest
send()
পদ্ধতিটি ব্যবহার করে সহজেই প্রেরণ করা যায় ।
একটি দিয়ে XMLHttpRequest
আপনি কাস্টম শিরোনাম সেট করতে পারেন এবং তারপরে এটি করতে পারেন POST
।
আসলে ক্লায়েন্ট পক্ষের একটি কুকি সংরক্ষণ করার জন্য এটি করার একটি ভাল উপায় better তারপরে কুকি সেই নির্দিষ্ট ডোমেনের জন্য প্রতিটি পৃষ্ঠার শিরোনামের সাথে স্বয়ংক্রিয়ভাবে প্রেরণ করা হয়।
নোড-জেজে, আপনি কুকি পার্সার দিয়ে কুকি সেট আপ করতে এবং ব্যবহার করতে পারেন ।
একটি উদাহরণ:
res.cookie('token', "xyz....", { httpOnly: true });
এখন আপনি এটি অ্যাক্সেস করতে পারেন:
app.get('/',function(req, res){
var token = req.cookies.token
});
নোটটি httpOnly:true
নিশ্চিত করে যে কুকি সাধারণত ম্যানুয়ালি বা জাভাস্ক্রিপ্টের মাধ্যমে অ্যাক্সেসযোগ্য হয় না এবং কেবল ব্রাউজারই এটি অ্যাক্সেস করতে পারে। আপনি যদি কোনও শিরোনাম বা সুরক্ষা টোকেন একটি ফর্ম পোস্টের সাথে প্রেরণ করতে চান এবং এজ্যাক্সের মাধ্যমে নয়, বেশিরভাগ পরিস্থিতিতে এটিকে একটি নিরাপদ উপায় হিসাবে বিবেচনা করা যেতে পারে। যদিও নিশ্চিত হন যে ডেটা নিরাপদ প্রোটোকল / এসএসএল এর মাধ্যমে প্রেরণ করা হয়েছে যদি আপনি কিছু সংবেদনশীল ব্যবহারকারীর সম্পর্কিত তথ্য সংরক্ষণ করেন যা সাধারণত হয়।
আমি পাব / জেডে যা করেছি তা এখানে
extends layout
block content
script(src="/jquery/dist/jquery.js")
script.
function doThePost() {
var jqXHR = $.ajax({
type:'post'
, url:<blabla>
, headers: {
'x-custom1': 'blabla'
, 'x-custom2': 'blabla'
, 'content-type': 'application/json'
}
, data: {
'id': 123456, blabla
}
})
.done(function(data, status, req) { console.log("done", data, status, req); })
.fail(function(req, status, err) { console.log("fail", req, status, err); });
}
h1= title
button(onclick='doThePost()') Click
আপনি যদি ফর্ম প্লাগইন সহ JQuery ব্যবহার করছেন তবে আপনি ব্যবহার করতে পারেন:
$('#myForm').ajaxSubmit({
headers: {
"foo": "bar"
}
});
এর প্রাকৃতিক আচরণ এড়াতে আপনি aj .জ্যাক্স ব্যবহার করতে পারেন <form method="POST">
। আপনি উদাহরণস্বরূপ, জমা বোতামে একটি ইভেন্ট যুক্ত করতে এবং পোষ্ট অনুরোধটিকে এজ্যাক্স হিসাবে বিবেচনা করতে পারেন।
প্রতিটি এজাক্স অনুরোধে যুক্ত করতে, আমি এখানে এটির জবাব দিয়েছি: https://stackoverflow.com/a/58964440/1909708
নির্দিষ্ট এজাক্স অনুরোধগুলিতে যুক্ত করতে, এটি 'আমি কীভাবে প্রয়োগ করেছি:
var token_value = $("meta[name='_csrf']").attr("content");
var token_header = $("meta[name='_csrf_header']").attr("content");
$.ajax("some-endpoint.do", {
method: "POST",
beforeSend: function(xhr) {
xhr.setRequestHeader(token_header, token_value);
},
data: {form_field: $("#form_field").val()},
success: doSomethingFunction,
dataType: "json"
});
আপনাকে অবশ্যই meta
জেএসপিতে উপাদানগুলি যুক্ত করতে হবে , যেমন
<html>
<head>
<!-- default header name is X-CSRF-TOKEN -->
<meta name="_csrf_header" content="${_csrf.headerName}"/>
<meta name="_csrf" content="${_csrf.token}"/>
একটি ফর্ম জমা (সিঙ্ক্রোনাস) অনুরোধে যুক্ত করতে, আমি এখানে এটির উত্তর দিয়েছি: https://stackoverflow.com/a/58965526/1909708
XmlHttpRequest
আপনি কি বলতে চান? অথবা কেবল একটি সরল এইচটিএমএল ফোরাম পোস্ট?