2016-09-21 3 views
0

ajax XMLHttpRequest를 사용하여 C++ .cgi 파일에 액세스 할 수있는 HTML 페이지가 있습니다. HTML에서 .cgi로 전달되는 값을 얻고 있으며 "sucess"또는 "failed"메시지를 다시 받아야합니다. 이것이 내 목표 다. XMLHttpRequest ajax를 사용하여 cgi Cpp에서 HTML로 값을 다시 가져 오는 방법은 무엇입니까?

내 HTML 코드 :

<!DOCTYPE html> 
<html> 
<head> 

<script type = "text/javascript"> 

var XMLHttp; 

if(navigator.appName == "Microsoft Internet Explorer") { 
     XMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); 

} else { 
     XMLHttp = new XMLHttpRequest(); 
} 


function getresponse() { 

    var fanme = document.getElementById('fname').value ; 

    var postData; 

    postData += fname; 

    XMLHttp.open("POST", "ajaxtry.cgi", true); 

    XMLHttp.onreadystatechange = function() { 
     document.getElementById('response_area').innerHTML = XMLHttp.responseText; 
    } 

    // Set the appropriate HTTP request headers 
     XMLHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
     XMLHttp.setRequestHeader("Content-length", postData.length); 

     // Make request 
     XMLHttp.send(postData); 



} 
</script> 

<h1>Sample application</h1> 

    First Names(s)<input onkeyup = "javascript: getresponse()" id="fname"> 

<div id = "response_area"> 
</div> 


</body> 
</html> 

과의 cpp가 .cgi 파일 : 일부 인코딩 값 : 내가 좋아하는 출력을 얻고있다

#include <unistd.h> 
#include <iostream> 
#include <vector> 
#include <string> 

#include "cgicc/Cgicc.h" 
#include "cgicc/HTTPHTMLHeader.h" 
#include "cgicc/HTMLClasses.h" 

#include <stdio.h> 
#include <string.h> 

using namespace std; 
using namespace cgicc; 

int main(int argc, char **argv) 
{ 

    Cgicc cgi; 

    try { 

     form_iterator fname = cgi.getElement("fname"); 
     form_iterator sname = cgi.getElement("sname"); 

      if(null != **fname) 
      { 
      cout<<"sucess"; 
      } 
      else 
      cout<<"failed"; 

     } 
     catch(exception& e) { } 

    return 0 ; 

} 

ELF>�@@@[email protected] @ @@@@@��[email protected]@@@�� ��`�`�@ ��`�`[email protected]@DDP�td��@�@LLQ�tdR�td��`�`((/lib64/ld-linux-x86-64.so.2GNU GNUMh���N��N틟����~��0!P 

것은 내가 얻을 수없는 이유 성공 또는 실패한 메시지가 Div의 내부 HTML로 돌아 간다? 뭐가 없니? 어떤 제안?

답변

1

출력 결과는 C 코드 자체의 컴파일 된 바이너리 인 것으로 보입니다.

서버를 으로 구성하고 프로그램을 실행하고 응답을 정적 파일로 제공하는 대신 반환해야합니다.

<Directory "/usr/local/apache2/htdocs/somedir"> 
    Options +ExecCGI 
    AddHandler cgi-script .cgi 
</Directory> 

detailed guide is in the manual :

일반적으로, 당신의 라인을 따라 뭔가를해야합니다.

+0

감사합니다. .. 일하고 있습니다. – user2986042

관련 문제