用于发送凭据的Javascript页面

用于发送凭据的Javascript页面,javascript,xmlhttprequest,Javascript,Xmlhttprequest,JavaScript文件 <html> <head> <script type="text/javascript"> function send() { var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, I

JavaScript文件

<html>
<head>
<script type="text/javascript">

function send()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }




xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }

xmlhttp.open("POST","192.168.0.10/unp.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(encodeURI("Username="+document.form1.uname.value+"&password="+document.form1.pass.value));





}

</script>
</head>

<body>

<form name="form1" method="post">
USERNAME:<input type = "text" name="uname"><br>
PASSWORD:<input type = "password" name="pass">


<br>



<input type="submit" onclick="send()">
</form>
<div id="myDiv"><p>How are You </p></div>
</body>
</html>

函数send()
{
var-xmlhttp;
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementById(“myDiv”).innerHTML=xmlhttp.responseText;
}
}
open(“POST”,“192.168.0.10/unp.php”,true);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
xmlhttp.send(encodeURI(“Username=“+document.form1.uname.value+””和password=“+document.form1.pass.value));
}
用户名:
密码:
你好吗

服务器上运行的PHP文件。我想将凭据存储在服务器上的文件中

<?php
$myfile="testfile.txt";
$fh=fopen($myfile,'a');
$stringdata=$_POST["Username"];
$stringdata1=$_POST["password"];
fwrite($fh,$stringdata);
fwrite($fh,$stringdata1);
fclose($fh);
?>
<html>
Details Submitted
</html>

提交的详细资料
客户端页面加载时不会出错。但是,无法创建文件textfile。 也不会返回响应。Js文件正确吗?

您是否希望屏幕上显示“提交的详细信息”?从您的代码(看起来是当前文档)来看,您似乎是这么认为的,但事实并非如此。文本将在
xmlhttp.responseText
中,并在
xmlhttp.responseXML
中整齐地解析出来

编辑

Vinod的评论指出了他的代码中的一些其他错误,特别是,他的编码错误(这可能不是他看到的问题)并且缺少标题(可能是)。他应该写:

var params = "Username="+encodeURIComponent(document.form1.uname.value)+
         "&password="+encodeURIComponent(document.form1.pass.value);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(params);

您是如何在浏览器中访问页面的?我在记事本中编写了html代码,正在使用IE打开它,并启用ActiveX内容。我的服务器在VirtualBox上,Linux服务器在apache上,所以实际上您的URL如下所示:
file://foo
对吗?披露:我在考虑同一原产地政策,当我发出GET请求时,它起作用了。我还希望将凭据存储在服务器上的文件中。我也尝试了您的更改,仍然给出与以前相同的响应。安装Firebug并查看真正发送的内容。用一个表单编写一个HTML页面,该表单发布到192.168.0.10/unp.php。比较。谢谢你的建议,我会做的。:)