【发布时间】:2016-06-13 09:43:47
【问题描述】:
我正在尝试使用 Ajax 向 php 发送 POST 请求。
如果我使用 GET 它可以正常工作,但是使用 POST 我在 php 中收到的数据是空的。 我以 json 格式发送数据。
这是js代码的样子:
$.ajax(
{
type: 'POST',
url: 'php/GiveItBack.php',
contentType: "json",
data: {
word: 'abc'
},
success: function (json) {
alert(json);
},
error: function (jqXHR, textStatus, errorThrown) { alert('ERROR: ' + errorThrown); }
});
这是 php/GiveItBack.php 文件
<?php
$x = $_GET['word'];
echo 'Get: ' . $x;
$x = $_POST['word'];
echo '; Post: ' . $x;
$x = $_REQUEST['word'];
echo '; Request: ' . $x . ';';
?>
使用此代码,警报窗口中的消息如下所示:
获取:;邮政: ;请求:;
如果我将 js 文件中的 type: 'POST' 替换为 type: 'GET' 这就是我在警报窗口中得到的结果(正如我所期望的那样看):
得到:abc;邮政: ;请求:abc;
我看不到我在这里缺少什么。 代码有问题还是我需要做任何特殊设置才能使其正常工作。
顺便说一句,我使用的是:jquery-2.2.4.min 和 php v5.6 和 XAMPP v3.2.2。
谢谢。
【问题讨论】:
-
你检查过你的phpinfo吗? POST 激活了吗?
-
这一行 ;enable_post_data_reading = Off 已注释且默认为开启。所以我猜它被激活了。
-
尝试打印而不是回声,不太清楚为什么,但我过去使用回声时遇到过问题