Javascript 如何在PHP中接收Ajax urlencode

Javascript 如何在PHP中接收Ajax urlencode,javascript,php,html,ajax,urlencode,Javascript,Php,Html,Ajax,Urlencode,我需要帮助解决这个问题,请帮助我 我正在尝试将Ajax URLENCDE转换为PHP,但PHP并没有像HTML直接发送到PHP时那样向我显示POST内容 我在Ajax中使用这段代码将FormData发送到PHP 使用这段简单的PHP代码,查看PHP文件名“thefile.PHP”是否有效 使用以下JS、HTML和PHP代码: 函数sendme(){ var form=新的FormData(document.forms['form']); if(window.XMLHttpRequest) var

我需要帮助解决这个问题,请帮助我

我正在尝试将Ajax URLENCDE转换为PHP,但PHP并没有像HTML直接发送到PHP时那样向我显示POST内容

我在Ajax中使用这段代码将FormData发送到PHP

使用这段简单的PHP代码,查看PHP文件名“thefile.PHP”是否有效

使用以下JS、HTML和PHP代码:

函数sendme(){
var form=新的FormData(document.forms['form']);
if(window.XMLHttpRequest)
var ajax=new-XMLHttpRequest();
其他的
var ajax=新的ActiveXObject(“Microsoft.XMLHTTP”);
open(“post”,“thefile.php”,true);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded;字符集=UTF-8”);
ajax.onreadystatechange=函数(){
if(ajax.readyState==4&&ajax.status==200)
log(ajax.responseText);//在控制台中查看返回
};
发送(表单);
};


输入内容: 用户:用户名 密码

结果是:


您的httpHeader“application/x-www-form-urlencoded”似乎与FormData对象不兼容

只需按如下方式进行评论:

ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");

to

//ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
如果您希望在请求中使用“application/x-www-form-urlencoded;charset=UTF-8”。您必须编写简单的javascript代码,使其成为普通字符串,如:

var form = "user=root&pass=root";
.....
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
.....
ajax.send(form);
发件人:

表单数据:将运行
多部分/表单数据
编码算法的结果推送到流,对象作为表单数据集,utf-8作为显式字符编码

您正在生成一个多部分/表单数据体,但是您正在显式地设置内容类型头,以声明它是
application/x-www-form-urlencoded;字符集=UTF-8

要么:

  • 指定正确的内容类型
  • 不要指定内容类型,让XHR为您设置
希望这对您有所帮助。
var form = "user=root&pass=root";
.....
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
.....
ajax.send(form);