gpt4 book ai didi

html - QUERY_STRING在CGI(C代码)中获取不到

转载 作者:太空宇宙 更新时间:2023-11-04 04:35:43 25 4
gpt4 key购买 nike

我正在使用 lighttpd 服务器。并尝试用 C 编写示例 CGI 并将 HTML 返回给服务器。我对 CGI 的 ajax 调用是

    <head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Watch TV</title>
<script src="js/jquery.js"></script>
<script type="text/javascript">
function myTest(){
$.ajax({
type: 'GET',
url: "http://10.47.5.158:50080/htmldiag/cgi-bin/test.cgi",
async: true,
data: {'m':2, 'n':3},
dataType: "html",

success: function(data) {
console.log("Entered success case------------------------", data);
},
error: (function(msg, url, ln) {
console.log("Entered error case------------------------", msg, url, ln);
})
});
}
</script>
</head>

我的CGI是

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *data;
long m,n;
printf("%s%c%c\n",
"Content-Type:text/html",13,10);
printf("Access-Control-Allow-Origin: *");
printf("<!DOCTYPE html><html>\n");
printf("<HEAD><TITLE>Multiplication results</TITLE></HEAD>\n");
printf("<BODY><H3>Multiplication results</H3>\n");
data = getenv("QUERY_STRING");
if(data == NULL)
printf("<P>Error! Error in passing data from form to script.");
else if(sscanf(data,"m=%ld&n=%ld",&m,&n)!=2)
printf("<P>Error! Invalid data. Data must be numeric.");
else
printf("<P>The product of %ld and %ld is %ld.",m,n,m*n);
printf("</BODY></HTML>\n");
return 0;
}

我也尝试过从 URL 给出参数。我无法获取 QUERY_STRING,也无法获取 HTML 格式的响应。我得到的只是它在成功案例中输入的日志和控制台中的整个 cgi 文件。

最佳答案

真的很简单,

环境变量 QUERY_STRING 设置为查询字符串。您可以通过此调用获取它:

char *query = getenv("QUERY_STRING");

注意 getenv 的手册页并注意返回的字符串可以静态分配。 (不要犹豫,使用 strdup 和免费的)。

关于html - QUERY_STRING在CGI(C代码)中获取不到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30776087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com