在php中,如何获取XMLHttpRequest的send()方法的text/plain值

在php中,如何获取XMLHttpRequest的send()方法的text/plain值,php,javascript,ajax,xmlhttprequest,Php,Javascript,Ajax,Xmlhttprequest,我不知道如何在PHP中为以下Javascript代码获取“Hello World!”。 我知道,如果内容类型为“application/x-www-form-urlencoded”,我可以使用$_POST[“”],但不能使用“text/plain” 您可以尝试http\u get\u request\u body()您的请求有很多问题。如果不使用应用程序/x-www-form-urlencoded,则无法发布数据。其次,“Hello World!”不是转义的,也不是附加到变量上的 下面是将数据

我不知道如何在PHP中为以下Javascript代码获取“Hello World!”。
我知道,如果内容类型为“application/x-www-form-urlencoded”,我可以使用$_POST[“”],但不能使用“text/plain”


您可以尝试
http\u get\u request\u body
()

您的请求有很多问题。如果不使用
应用程序/x-www-form-urlencoded
,则无法发布数据。其次,“Hello World!”不是转义的,也不是附加到变量上的

下面是将数据发布到服务器的javascript代码

var xhr=new-XMLHttpRequest();
var params='x='+encodeURIComponent(“Hello World!”);
open(“POST”,'example.php',true);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
setRequestHeader(“内容长度”,参数长度);
setRequestHeader(“连接”、“关闭”);
xhr.onreadystatechange=函数(){
如果(xhr.readyState==4&&xhr.status==200){
警报(xhr.responseText);
}
}
xhr.send(参数);
您可以使用PHP中的
$\u POST['x']
访问此文件

或者,通过使用以下代码使用
$\u GET['x']

var xhr=new-XMLHttpRequest();
var params=encodeURIComponent(“你好,世界!”);
open(“GET”,“example.php?x=”+params,true);
xhr.onreadystatechange=函数(){
如果(xhr.readyState==4&&xhr.status==200){
警报(xhr.responseText);
}
}
xhr.send(空);

GET更符合使用
内容类型:text/plain

这个PHP将从请求体读取原始数据:

$data = file_get_contents('php://input');
第3行:

xhr.setRequestHeader('Content-Type', 'text/plain');
不需要,因为发布纯文本会将内容类型设置为text/plain;字符集=UTF-8

我只想知道这些:)Thanks@genkidesu字体我看你是新来的。本网站习惯于接受您认为有用的答案。否则,人们将更不愿意回答你将来可能遇到的任何问题。@abc你应该将赫伯特的回答标记为已接受。Hello Herbert感谢您的正确陈述,我尝试了一个,但没有成功。与您的相比,他们的一个看起来混乱且不完整(我想知道它是如何工作的),尽管我同意“正确”的标准做法是始终正确格式化表单数据php://input“bit是一个值得注意的有趣细节。关于它的更多信息可以通过网络搜索找到:以纯文本形式发送帖子数据的问题在哪里?我从未读到HTTP标准要求POST数据为“application/x-www-form-urlencoded”,例如PHP和浏览器使用它来进行比HTTP更高级别的通信
xhr.setRequestHeader('Content-Type', 'text/plain');