来自其他域的表单POST在PHP中为空

时间:2018-01-17 10:45:16

标签: php apache post cors http-post

从其他域发布表单(使用POST)时,我的POST集合为空。 当我在同一个域上使用简单的HTML页面进行测试时,它可以工作。

这是我的PHP代码:

<?php
header("access-control-allow-origin: *");
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 'On');
ini_set("allow_url_fopen", true);
echo("input: " . file_get_contents("php://input"));
?>

有没有人有想法?它可能是服务器设置/配置吗?

这些是我回来的标题(使用Postman时):

Connection →Upgrade, Keep-Alive
Content-Encoding →gzip
Content-Length →27
Content-Type →text/html; charset=UTF-8
Date →Wed, 17 Jan 2018 10:39:26 GMT
Keep-Alive →timeout=2, max=100
Server →Apache/2.4.29 (Unix) OpenSSL/1.0.2k
Upgrade →h2,h2c
Vary →Accept-Encoding,User-Agent
X-Powered-By →PHP/7.2.0
access-control-allow-origin →*

1 个答案:

答案 0 :(得分:0)

php://输入是一个只读流,从请求正文中读取原始数据。例如,当数据以json格式出现时,它很有用。当您使用enctype = multipart / formdata发布表单时,数据(键值对)位于$ _POST全局变量中,并且php://输入不可用。