ari*_*nmz 3 javascript php json
我试图使用XMLHttpRequest和json字符串将一小段数据从javascript发送到PHP脚本来处理它并再次以Json字符串的形式返回一些响应,但我遇到了大量的问题和不同的方法只是不能正常合作,这是迄今为止的工作:
客户
json_string = '{"foo":"1","bar":"2"}';
var r = new XMLHttpRequest();
r.open('post', 'script.php', true);
r.setRequestHeader('Content-type','application/json; charset=utf-8');
r.setRequestHeader('Content-length', json_string.length);
r.setRequestHeader('Connection', 'close');
r.onload = function () {
console.log(this.responseText);
};
r.send(json_string);
Run Code Online (Sandbox Code Playgroud)
服务器
$json = file_get_contents('php://input');
echo $json;
Run Code Online (Sandbox Code Playgroud)
它不能比这更简单,但我得到这个警告:
[09-Jan-2015 15:50:03 America/Mexico_City] PHP不推荐使用:自动填充$ HTTP_RAW_POST_DATA已弃用,将在以后的版本中删除.要避免此警告,请在php.ini中将'always_populate_raw_post_data'设置为'-1',然后使用php://输入流.在第0行的未知中
[09-Jan-2015 15:50:03 America/Mexico_City] PHP警告:无法修改标题信息 - 已在第0行以未知方式发送的标题
当然,响应文本如下所示:
不推荐使用:自动填充$ HTTP_RAW_POST_DATA已弃用,将在以后的版本中删除.要避免此警告,请在php.ini中将'always_populate_raw_post_data'设置为'-1',然后使用php://输入流.在第0行的未知中警告:无法修改标题信息 - 已在第0行的 " 未知 "中发送的标题{"foo":"1","bar":"2"}"
我究竟做错了什么?为什么PHP会抱怨已发送的标头?
我正在使用PHP 5.6.
您需要编辑php.ini文件并进行设置always_populate_raw_post_data = -1.
你的代码工作得很好. $json = file_get_contents('php://input');是正确的.
您只是收到警告,因为您的PHP已更新,您需要更新该新版本的php.ini文件.
更多信息:https://www.bram.us/2014/10/26/php-5-6-automatically-populating-http_raw_post_data-is-deprecated-and-will-be-removed-in-a-future-版/
| 归档时间: |
|
| 查看次数: |
1525 次 |
| 最近记录: |