首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用XMLHttpRequest ajax从cgi返回到HTML?

如何使用XMLHttpRequest ajax从cgi返回到HTML?
EN

Stack Overflow用户
提问于 2016-09-21 16:26:02
回答 1查看 420关注 0票数 0

我有一个带有ajax XMLHttpRequest的HTML页面来访问C++ .cgi文件。我正在从传递给.cgi的HTML中获得值,我需要得到“成功”或“失败”消息。这就是我的目标。

我的HTML代码:

代码语言:javascript
复制
<!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文件:

代码语言:javascript
复制
#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 ;

 }

我得到的输出如下:一些编码值:

代码语言:javascript
复制
ELF>�@@@1@8 @ @@@@@��88@8@@@�� ��`�`�@ ��`�`TT@T@DDP�td��@�@LLQ�tdR�td��`�`((/lib64/ld-linux-x86-64.so.2GNU GNUMh���N��N틟����~��0!P

为什么我不能获得成功或失败的消息返回到内部HTML的Div?有什么遗漏了吗?有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-21 16:39:53

您得到的输出似乎是C代码本身的编译二进制文件。

您需要将服务器配置为,执行程序并返回响应,而不是将其作为静态文件提供。

一般来说,您需要一些类似以下内容的内容:

代码语言:javascript
复制
<Directory "/usr/local/apache2/htdocs/somedir">
    Options +ExecCGI
    AddHandler cgi-script .cgi
</Directory>

一个详细的指南在手册中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39621853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档