Javascript PHP脚本,说明请求方法在应该发布时是GET
我正在C#.NET 4.0中为仍然使用XP的客户端构建一个桌面应用程序。在应用程序中,我必须联系客户的网站,因此我开始研究如何简单地与网站沟通。一些敏感信息可能必须经过传输,因此请求方法必须是POST。我已经让应用程序与网站的PHP脚本进行通信,但我不认为它会作为POST发送,尽管明确地将方法设置为POST 这是我的简历: 我从PHP脚本得到的回复只是请求方法加上连接是否为HTTPS。回复应该是“继续发帖”,但我尝试过的每件事都以“继续”返回。诚然,我对PHP知之甚少,但在过去的几天里,我做了大量的研究,我非常确定这个简单的脚本没有bug。不过,我可能错了 以下是我的PHP:Javascript PHP脚本,说明请求方法在应该发布时是GET,javascript,php,html,.net,c#-4.0,Javascript,Php,Html,.net,C# 4.0,我正在C#.NET 4.0中为仍然使用XP的客户端构建一个桌面应用程序。在应用程序中,我必须联系客户的网站,因此我开始研究如何简单地与网站沟通。一些敏感信息可能必须经过传输,因此请求方法必须是POST。我已经让应用程序与网站的PHP脚本进行通信,但我不认为它会作为POST发送,尽管明确地将方法设置为POST 这是我的简历: 我从PHP脚本得到的回复只是请求方法加上连接是否为HTTPS。回复应该是“继续发帖”,但我尝试过的每件事都以“继续”返回。诚然,我对PHP知之甚少,但在过去的几天里,我做了大
<?php
ob_start();
echo $_SERVER["REQUEST_METHOD"]." ".$_SERVER["HTTPS"];
header($_SERVER["SERVER_PROTOCOL"]." 200 Success;");
header("Status: 200 Success;");
header("Content-Type: text/plain;");
header("Connection: close;");
ob_end_flush();
ob_flush();
flush();
?>
我花了一整天的时间试图找出问题在我的脚本或应用程序中的位置。找不到问题。我在发送请求之前、发送请求之后以及脚本的响应本身将方法输出到控制台。他们都应该和波斯特匹配。应用程序始终坚持请求方法是POST,但每次脚本都会说GET。所以我决定在网站上的一个页面中创建一个HTML表单来检查它,我得到了同样的结果
这是我的HTML:
<!DOCTYPE html>
<html>
<head>
<title>
Title
</title>
</head>
<body>
<form id="formId" method="POST" target="_self"
action="https://www.myclientswebsite.com/formtest.php">
<input type="text" id="name" value="email@address.example"></input>
<input type="password" id="password" value="P@$$word1234"></input>
<input type="text" id="info" value="$0m3R4nd0M1nF0#3|23"></input>
</form>
<script type="text/javascript">
document.getElementById('formId').submit();
</script>
</body>
</html>
标题
document.getElementById('formId').submit();
当我在浏览器中导航到该页面时,表单自动提交,并且我从PHP脚本得到响应,“继续”,即使表单清楚地将方法声明为POST。在JavaScript、C#或PHP中,是否有一些幕后魔法可以强制请求为GET?我错过了什么
编辑:我不确定如何操作,但突然之间,HTML表单开始工作,并获得了正确的输出。所以现在我想这可能只是我的C代码中的一些东西。也许网站正在重定向?我会用像fiddler这样的调试器检查帖子,看看重定向链是什么样子的。你能提供
的输出吗?@BA_Webimax$\u POST
和$\u GET
都显示了数组(0){}
,而$\u服务器
显示了HTTPS是“开”的,内容类型如上所示,上面的用户代理,REQUEST_方法是“GET”,QUERY_字符串是空的,它是fastcgi,是Apache,使用mysql,等等@Meloviz你可能看到了某种重定向。这就解释了空的$\u POST和$\u GET数组。所有重定向都是GET,POST变量将被丢弃。@James和BA_Webimax您说得对,谢谢。我检查了访问日志,它立即重定向并删除了GET的帖子。现在来弄清楚为什么会这样。吴宇森。谢谢你的帮助!
<!DOCTYPE html>
<html>
<head>
<title>
Title
</title>
</head>
<body>
<form id="formId" method="POST" target="_self"
action="https://www.myclientswebsite.com/formtest.php">
<input type="text" id="name" value="email@address.example"></input>
<input type="password" id="password" value="P@$$word1234"></input>
<input type="text" id="info" value="$0m3R4nd0M1nF0#3|23"></input>
</form>
<script type="text/javascript">
document.getElementById('formId').submit();
</script>
</body>
</html>