【发布时间】:2015-12-16 16:18:30
【问题描述】:
我正在为我开发的现有 REST 接口编写 Web 前端。到目前为止,我所有的 POST 和 GET 请求都运行良好,但是当我开始添加 PUT 请求时,我遇到了麻烦。
我把它归结为一个包含 2 个文件的非常简单的测试用例:
我的javascript AJAX:
$.ajax({
url: "putTest.php",
type: 'PUT',
dataType: 'application/json',
data: { testVar: "test" },
contentType: 'application/json',
success: function( data ) {
},
failure: function( data ) {
}
});
还有我的 PHP 页面“putTest.php”:
<?php
var_dump($_SERVER);
?>
我希望,就像在 GET 或 POST 中一样,我的 QUERY_STRING 服务器变量将包含 testVar,这是我传递给它的数据。然而,事实并非如此,请看回复:
["REQUEST_METHOD"]=> string(3) "PUT"
["QUERY_STRING"]=> string(0) ""
["REQUEST_URI"]=> string(25) "/test/putTest.php"
让我感到困惑的是,我使用了一个 Firefox 插件 (HttpRequester) 并发送了完全相同的参数和设置,并且响应按预期完美返回。
为什么在使用jQuery AJAX时不会遇到参数?
谢谢!
【问题讨论】:
-
哇...非常有趣。基本上,PUT 和 DELETE 不接受数据,所以我必须将其添加到 URL(类似于 GET 请求)。对吗?
-
@KivakWolf 不,只是检查我的答案
-
老实说,我不知道,但你可以试试。当我有时无法完全提供解决方案时,我喜欢通过查找相关问题的链接来提供帮助。
-
QUERY_STRING 中不应有数据。 PUT,就像 POST 一样将数据放入正文中。
标签: javascript php jquery ajax put