gpt4 book ai didi

javascript - 将信息从 c++ cgi 脚本传递到 javascript 标签的问题

转载 作者:太空宇宙 更新时间:2023-11-04 14:13:46 26 4
gpt4 key购买 nike

我尝试使用我在本地 IIS (Win7) 上托管的 cgi 脚本为 javascript 函数设置一个变量:

电脑:

cout<<"Content-type: text/javascript\r\n\r\n";
cout<<"var value=2;";

JavaScript:

<script type="text/javascript" src="./cgi-bin/value.exe"></script>
<script type="text/javascript">
<!--
document.write('The number is: ' + value);
-->
</script>

但是当我用 js 代码 document.write 打开 html 文件时什么都不做。当我用 firebug 分析页面时,js 标签内有很多奇怪的字符,在这些字符的中间某处有我的输出:“var value=2”。

有人知道发生了什么事吗?任何帮助将不胜感激!

编辑:这里是脚本标签之间的 Firebug 告诉我的片段:

MZ�������ÿÿ��¸�������@�����

)��")��4)��F)��\)��p)��z)��)��)��)��¬)��Æ)
��Ø)��)��ô(��Ê(��¼ (��°(��¤(��(��(��(�
(��l(��^(��<(��à(����������@���������È@�û��
������bad allocation��Content-type: text/javascript
���var NumberOfFiles = 2;

?�������������0���������������� ��H���
X@��V�������<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT"
version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b">
</assemblyIdentity>
</dependentAssembly>
</dependency>
/assembly>PAPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDING
XXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADD���0�������

谁能告诉我这个输出是从哪里来的?

最佳答案

这里似乎还不错。当然,您必须从本地主机(或其他服务器)运行它

testCgi.html

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="/cgi-bin/cgiBinNum.cgi"></script>
<script type="text/javascript">
document.write('The number is: ' + value);
</script>
</head>
<body>
</body>
</html>

cgiBinNum.cpp

#include <iostream>

using namespace std;

int main()
{
cout<<"Content-type: text/javascript\r\n\r\n";
cout<<"var value=2;";
return 0;
}

输出:

<!DOCTYPE html>
<html><head>

<script type="text/javascript" src="/cgi-bin/cgiBinNum.cgi"></script>
<script type="text/javascript">
document.write('The number is: ' + value);
</script></head><body>The number is: 2




</body></html>

是的,'MZ' 立即将其泄露 - Mark Zbikowski。

基本上,它实际上是在提供 exe 文件本身,而不仅仅是它的结果。

如果您在十六进制编辑器中打开该文件,它看起来非常相似。

当您说,这就是您所拥有的“差不多”时,细节决定成败。

还有吗?

我有 2 个建议 -(1) 提供最小的完整源来复制您的问题,就像我所做的那样(2) 将文件扩展名更改为 .cgi 并更改 javascript 以反射(reflect)这一点。 (你还应该养成向项目添加另一个构建目标的习惯,并将它的输出文件夹设置为你的 cgi-bin 文件夹,也是 cgi 的扩展名,而不是 exe)这应该不会对这个问题产生影响,但通常最好不要在该文件夹中包含易于执行的文件 - 很容易,因为您可以双击它们并且它们将运行,如果您使用完整路径,您始终可以从命令行运行,就像 apache 一样。

啊啊啊!刚刚意识到您正在使用 IIS - 我认为您发现它是弄乱您的输出的那个 b@stard。可能使第 (1) 点没有实际意义——在我看来,它更有可能是 IIS 设置——尽管它也可以服务于文件的内容,而不是输出——仅仅基于它的扩展名。试试吧!

关于javascript - 将信息从 c++ cgi 脚本传递到 javascript 标签的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12825465/

26 4 0