file_get_contents(‘php:// input’)返回带有PUT请求的空字符
发布时间:2020-12-13 13:13:40 所属栏目:PHP教程 来源:网络整理
导读:在将Apache的一个网站从Apache移植到 Windows(IIS)(8.5)通过FastCGI运行 PHP 5.6之后,我们遇到了file_get_contents(‘php:// input’)为PUT请求返回一个空字符串的问题. 我创建了以下测试: ?phpif (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) strtolower(
在将Apache的一个网站从Apache移植到
Windows(IIS)(8.5)通过FastCGI运行
PHP 5.6之后,我们遇到了file_get_contents(‘php:// input’)为PUT请求返回一个空字符串的问题.
我创建了以下测试: <?php if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { die(file_get_contents('php://input')); } ?> <!DOCTYPE html> <html> <head> <script src="//code.jquery.com/jquery-2.1.3.min.js"></script> </head> <body> <h2>POST:</h2> <div id="post"></div> <h2>PUT:</h2> <div id="put"></div> <script> $.ajax({ url: '?',data: 'Working',type: 'POST' }).then(function(response) { $('#post').html(response || 'Not working'); }); $.ajax({ url: '?',type: 'PUT' }).then(function(response) { $('#put').html(response || 'Not working'); }); </script> </body> </html> 其结果如下:
可能是什么原因造成的?
事实证明,问题是由Helicon Ape模块(支持Apache .htaccess和.htpasswd配置文件的模块)引起的. 删除此模块可解决问题,但我仍然不知道为什么会干扰PUT请求.我想我必须在他们的论坛上发表一个话题,这个问题.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |