【发布时间】:2016-09-06 14:11:24
【问题描述】:
我有一个 PHP 文件,其中包含以下内容:
if ($_SERVER['REQUEST_METHOD'] === 'PUT') {
echo '{ "response": "' . $_REQUEST['id'] . '" }';
}
现在我想通过 jQuery 对该文件进行 AJAX 调用:
var send = {
id: 10
};
$.ajax({
data: send,
method: 'PUT',
url: "myphpfile.php",
success: function(responseData) {
console.log(responseData.response);
}
});
这应该返回10 作为响应,但是输出为空。在 PHP 文件中,我还尝试将 id 写入文本文件,结果该文件也是空的。这意味着我的 PHP 代码不是这里的问题,而是 JavaScript。
但是,当我将 AJAX url 更改为 myphpfile.php?id=10 时,响应是正确的,并且 10 被记录到控制台。
我已经尝试了很多方法来解决这个问题,但没有任何效果。这包括设置contentType: 'application/json; charset=utf-8'、dataType: 'json' 和data: JSON.stringify(send)。我找不到更多关于此的论坛问题或文章,而且我发现的那些没有用。
感谢任何帮助。
【问题讨论】:
-
有没有尝试添加ajax响应的回调函数,看看有没有错误?
-
你试过 console.log(responseData) 吗?您收到的响应可能只是文本。因此,responseData.response 不会显示任何值。
-
PHP 是否报告任何错误?检查php.net/manual/en/reserved.variables.request.php,您可能无法为此使用
$_REQUEST -
您确定不要
method: 'GET'? 但是,当我将 AJAX url 更改为 myphpfile.php?id=10 时,响应是正确的,并且 10 会记录到控制台。这可能是因为您的 PHP 正在寻找 $_GET 变量
标签: javascript php jquery ajax put