[javascript] 양식 POST에서 헤더 필드를 설정하는 방법은 무엇입니까?

양식 제출시 POST 헤더에 사용자 정의 필드를 설정하려면 어떻게해야합니까?



답변

할 수 없습니다-AFAIK.

그러나 예를 들어 jquery (일반 자바 스크립트로 수행 할 수 있음)를 사용하여 양식을 직렬화하고 사용자 정의 헤더를 추가하는 동안 (AJAX 사용) 보낼 수 있습니다.

serializeHTML FORM form-url-encoded을 POST 준비가 된 값 으로 변경하는 jquery 를 살펴보십시오 .

최신 정보

내 제안은 다음 중 하나를 포함하는 것입니다.

  • 숨겨진 양식 요소
  • 쿼리 문자열 매개 변수

답변

페이지에 쿠키 값을 설정 한 다음 서버 측에서 다시 읽습니다.

특정 헤더를 설정할 수 없지만 콘텐츠 본문이 아닌 헤더 섹션에서 값에 액세스 할 수 있습니다.


답변

에서 FormData documention :

XMLHttpRequest Level 2는 새로운 FormData 인터페이스에 대한 지원을 추가합니다. FormData 개체는 양식 필드와 해당 값을 나타내는 키 / 값 쌍 집합을 쉽게 구성 할 수있는 방법을 제공합니다. 그런 다음 XMLHttpRequest send()메서드를 사용하여 쉽게 보낼 수 있습니다 .

를 사용 XMLHttpRequest하여 사용자 지정 헤더를 설정 한 다음 POST.


답변

사실 클라이언트 측에 쿠키를 저장하는 더 좋은 방법입니다. 그런 다음 해당 특정 도메인의 모든 페이지 헤더와 함께 쿠키가 자동으로 전송됩니다.

node-js에서는 쿠키 파서쿠키를 설정하고 사용할 수 있습니다. .

예 :

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

이제이 항목에 액세스 할 수 있습니다.

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

참고 httpOnly:true쿠키는 일반적으로 액세스 할 수 없습니다 수동 또는 자바 스크립트를 통해 액세스 할 수 있습니다 만 브라우저되도록합니다. ajax를 통하지 않고 양식 게시물로 일부 헤더 또는 보안 토큰을 보내려는 경우 대부분의 경우 이것은 안전한 방법으로 간주 될 수 있습니다. 일반적으로 중요한 사용자 관련 정보를 저장하는 경우 데이터가 보안 프로토콜 / ssl을 통해 전송되는지 확인하십시오.


답변

내가 펍 / 제이드에서 한 일입니다.

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


답변

Form 플러그인과 함께 JQuery를 사용하는 경우 다음을 사용할 수 있습니다.

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

출처 : https://stackoverflow.com/a/31955515/9469069


답변

$ .ajax를 사용하여 <form method="POST">. 예를 들어 제출 버튼에 이벤트를 추가하고 POST 요청을 AJAX로 처리 할 수 ​​있습니다.