কিভাবে একটি ফর্ম পোস্টে শিরোলেখ ক্ষেত্র সেট করবেন?


99

একটি ফর্ম জমা দেওয়ার জন্য আমি কীভাবে পোষ্ট হেডারে একটি কাস্টম ফিল্ড সেট করতে পারি?


4
ব্যবহার করা XmlHttpRequestআপনি কি বলতে চান? অথবা কেবল একটি সরল এইচটিএমএল ফোরাম পোস্ট?
আলিওস্তাদ

না, আমি ফর্ম ক্রিয়াটি ব্যবহার করছি: পোস্ট
রেজা ওলিয়ায়েই

উত্তর:


61

এটি করা যায় না - এএফআইএকে।

তবে আপনি উদাহরণস্বরূপ jquery (যদিও আপনি এটি সরল জাভাস্ক্রিপ্ট দিয়ে করতে পারেন) ফর্মটি সিরিয়াল করতে এবং আপনার কাস্টম শিরোনাম যুক্ত করার সময় (AJAX ব্যবহার করে) প্রেরণ করতে পারেন।

serializeপোষ্টের জন্য form-url-encodedপ্রস্তুত মানগুলিতে একটি এইচটিএমএল ফরমে পরিবর্তন করে এমন জ্যাকোরিটি দেখুন ।

হালনাগাদ

আমার পরামর্শ হয় অন্তর্ভুক্ত করা হয়

  • একটি লুকানো ফর্ম উপাদান
  • একটি কোয়েরি স্ট্রিং প্যারামিটার

4
আমি এই ক্ষেত্রে এজ্যাক্স ব্যবহার করতে পারি না। একরকম, আমি পোস্ট করছি এবং একটি এসপেক্স পৃষ্ঠায় পুনঃনির্দেশ করছি। ফ্রি পোস্টের মাধ্যমে পুনঃনির্দেশ ঘটে।
রেজা ওলিয়ায়েই

4
আমার পরামর্শটি হ'ল হয় 1) একটি লুকানো ফর্ম উপাদান 2) একটি কোয়েরি স্ট্রিং প্যারামিটার
Aliostad

4
আপনি ফাইল সিরিয়ালাইজ করতে পারেন? আমি ভেবেছিলাম: না
ফ্যালেনেরপেপার

হ্যাঁ আপনি বেস 64 স্ট্রিংগুলিতে ফাইলগুলি সিরিয়ালাইজ করতে পারেন, বিশাল ফাইলগুলির জন্য সম্ভবত খুব আনাড়ি যেহেতু বেস 64 বেশ বড় আকারের হতে পারে। তবে প্রতিটি সিরিয়ালাইজেশন পদ্ধতিও তাই।
ফেলিপ

আমি কেবল এটিকে ক্যোরি স্ট্রিং পরম হিসাবে যুক্ত করেছি এবং আপনার শিরোনাম বা কোয়েরি স্ট্রিংটির উপস্থিতি রয়েছে এবং টোকেন রয়েছে কিনা তা দেখতে আপনার সার্ভারটি পরীক্ষা করে নেব।
জেমস 111

14

পৃষ্ঠায় একটি কুকি মান সেট করুন এবং তারপরে এটি সার্ভারের পাশেই পড়ুন।

আপনি একটি নির্দিষ্ট শিরোলেখ সেট করতে সক্ষম হবেন না, তবে মানটি শিরোনাম বিভাগে অ্যাক্সেসযোগ্য হবে এবং সামগ্রী সামগ্রী নয়।


4
দ্রষ্টব্য: আপনি যে শিরোনামটি যুক্ত করতে চান তা যদি সিএসআরএফ সুরক্ষার জন্য হয় তবে নিশ্চিত হয়ে নিন যে আপনি সেই টোকেনটি কোনও কুকিতে সংরক্ষণ করেন না বা আপনি সিএসআরএফ সুরক্ষাটিকে পরাস্ত করবেন।
জিমোথি

5

ফর্মডাটা ডকুমেন্টেশন থেকে :

এক্সএমএলএইচটিপিআরকোয়েস্ট স্তর 2 নতুন ফর্মডাটা ইন্টারফেসের জন্য সমর্থন যোগ করে। ফর্মডাটা অবজেক্টগুলি সহজেই কী / মান জোড়ার ফর্ম ক্ষেত্রগুলি এবং তাদের মানগুলি উপস্থাপন করে এমন একটি সেট তৈরি করার একটি উপায় সরবরাহ করে, যা পরে XMLHttpRequest send()পদ্ধতিটি ব্যবহার করে সহজেই প্রেরণ করা যায় ।

একটি দিয়ে XMLHttpRequestআপনি কাস্টম শিরোনাম সেট করতে পারেন এবং তারপরে এটি করতে পারেন POST


2

আসলে ক্লায়েন্ট পক্ষের একটি কুকি সংরক্ষণ করার জন্য এটি করার একটি ভাল উপায় better তারপরে কুকি সেই নির্দিষ্ট ডোমেনের জন্য প্রতিটি পৃষ্ঠার শিরোনামের সাথে স্বয়ংক্রিয়ভাবে প্রেরণ করা হয়।

নোড-জেজে, আপনি কুকি পার্সার দিয়ে কুকি সেট আপ করতে এবং ব্যবহার করতে পারেন ।

একটি উদাহরণ:

res.cookie('token', "xyz....", { httpOnly: true });

এখন আপনি এটি অ্যাক্সেস করতে পারেন:

app.get('/',function(req, res){
 var token = req.cookies.token
});

নোটটি httpOnly:trueনিশ্চিত করে যে কুকি সাধারণত ম্যানুয়ালি বা জাভাস্ক্রিপ্টের মাধ্যমে অ্যাক্সেসযোগ্য হয় না এবং কেবল ব্রাউজারই এটি অ্যাক্সেস করতে পারে। আপনি যদি কোনও শিরোনাম বা সুরক্ষা টোকেন একটি ফর্ম পোস্টের সাথে প্রেরণ করতে চান এবং এজ্যাক্সের মাধ্যমে নয়, বেশিরভাগ পরিস্থিতিতে এটিকে একটি নিরাপদ উপায় হিসাবে বিবেচনা করা যেতে পারে। যদিও নিশ্চিত হন যে ডেটা নিরাপদ প্রোটোকল / এসএসএল এর মাধ্যমে প্রেরণ করা হয়েছে যদি আপনি কিছু সংবেদনশীল ব্যবহারকারীর সম্পর্কিত তথ্য সংরক্ষণ করেন যা সাধারণত হয়।


1

আমি পাব / জেডে যা করেছি তা এখানে

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

1

আপনি যদি ফর্ম প্লাগইন সহ JQuery ব্যবহার করছেন তবে আপনি ব্যবহার করতে পারেন:

$('#myForm').ajaxSubmit({
    headers: {
        "foo": "bar"
    }
});

সূত্র: https://stackoverflow.com/a/31955515/9469069


0

এর প্রাকৃতিক আচরণ এড়াতে আপনি aj .জ্যাক্স ব্যবহার করতে পারেন <form method="POST">। আপনি উদাহরণস্বরূপ, জমা বোতামে একটি ইভেন্ট যুক্ত করতে এবং পোষ্ট অনুরোধটিকে এজ্যাক্স হিসাবে বিবেচনা করতে পারেন।


4
আমি একটি এসপেক্স পৃষ্ঠায় পুনঃনির্দেশ করতে এবং কিছু ডেটা পোস্ট করতে এই ফর্মটি জমাটি ব্যবহার করি ।
রেজা ওলিয়ায়েই

আমাকে আরও ভাল করে বুঝতে: 1) ব্যবহারকারীর পোস্ট 2) সংরক্ষণের ডেটা 3) পুনর্নির্দেশ। তুমি কি কর?
ফ্যাবিও বুদা

আমি এইচটিএমএল পৃষ্ঠায় একটি আইফ্রেম করেছি (উত্স), অন্য একটি এইচটিএমএল পৃষ্ঠাতে (প্রক্সি) ইঙ্গিত করে। প্রক্সি পৃষ্ঠা কোনও ফর্ম উপাদানটির মাধ্যমে কিছু প্যারামিটার (না পাওয়া) পোস্ট করে। পুনঃনির্দেশ এবং পোস্ট ফর্ম জমা দেওয়ার সময় ঘটে। আমি গন্তব্য হিসাবে এসপেক্স পৃষ্ঠায় পোস্ট পরামিতি পুনরুদ্ধার করি।
রেজা ওলিয়ায়েই

0

প্রতিটি এজাক্স অনুরোধে যুক্ত করতে, আমি এখানে এটির জবাব দিয়েছি: 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

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