AJAX POST 요청 (request.open("POST", url, flag)
)을 통해 일부 데이터를 내 Perl CGI 스크립트에 제출하는 클라이언트 측 응용 프로그램이 있습니다.Perl에서 Ajax 요청을 받고 응답하는 방법은 무엇입니까?
어떻게이 데이터를 Perl로 검색하고 다른 데이터 (AJAX 응답)를 반환합니까?
AJAX POST 요청 (request.open("POST", url, flag)
)을 통해 일부 데이터를 내 Perl CGI 스크립트에 제출하는 클라이언트 측 응용 프로그램이 있습니다.Perl에서 Ajax 요청을 받고 응답하는 방법은 무엇입니까?
어떻게이 데이터를 Perl로 검색하고 다른 데이터 (AJAX 응답)를 반환합니까?
POST 요청을 처리하는 것과 같은 방법입니다. url
에 POST를 수신하고 JavaScript가 기대하는 바를 리턴하는 CGI 스크립트가 필요합니다. 일반적인 HTML 양식 POST와 유일한 차이점은 수신하고 전송할 Content-Type입니다.
코어 CGI 모듈을 사용하십시오. 예 : 앱이 크고 복잡 할 경우
use strict;
use warnings;
use CGI;
my $q = CGI->new;
my $foo = $q->param('foo');
print $q->header;
print "You said $foo";
, 당신은 CGI::Application 또는 Catalyst 같은 펄 웹 애플리케이션 프레임 워크 중 하나를 조사 할 수 있습니다.
이것은 잘못된 조언 일뿐입니다. XMLHttpRequest의 데이터가 HTML 양식의 출력으로 포맷된다는 보장은 없습니다. –
사실, 보증은 없지만 모든 Ajax 라이브러리는 사용자가 자신의 게시물 데이터 문자열을 작성하지 않는 한 기본적으로 양식 인코딩을 사용합니다. OP가 그 반대의 것을 진술하지 않았다는 것을 감안할 때, 기본 행동을 취하는 것이 합리적입니다. – friedo
OK,하지만 대답은 작동 여부에 대한주의 사항이 없습니다. –
CGI 스크립트의 기본 모델은 "STDIN에서 읽기, STDOUT에 쓰기"입니다. 입력 단계에서 환경 변수 CONTENT_LENGTH
은 읽을 내용의 길이 (바이트)를 STDIN
에서 제공합니다.
Content-Type: text/plain
<your data starts here>
에서 : 출력 단계에서, 당신은 또한 text/html
, 또는 text/plain
등 플러스 빈 줄 같은 최소한의 MIME 타입 한 줄 "콘텐츠 유형을"입니다 기본 HTTP 헤더를 보낼 필요 XMLHttpRequest의 경우 데이터의 형식을 완전히 제어하므로 STDIN의 입력을 파싱하는 방법은 사용자가 결정합니다. 마찬가지로 마임 유형에 거짓말을하고 응답으로 원하는 것을 보내면됩니다.
JSON은 Perl에서 JavaScript로 데이터를 전송하기에 좋은 형식입니다.
use CGI;
my $q = CGI->new;
my $xml = $q->param('POSTDATA');
나는 그것이 어떻게 작동하는지 알고 있지만 Perl에 익숙하지 않아서 묻고 있습니다. "POST 요청을 처리하는 것과 같은 방법"- 펄을 사용하여 POST 요청을 처리하는 방법을 모릅니다. 이것이 제 질문이었습니다. – Peterim
@ Peterim, 그럼 당신은 당신이 성취하고자하는 것에 대한 더 자세한 정보를 제공해야합니다. 그것을 할 수있는 방법이 많이 있으며, 상황에 대해 더 많이 알지 못하면 어떤 것을 추천해야할지 알기가 어렵습니다. – cjm