我正在尝试使用jquery的ajax方法发出一个delete请求,如下所示
$.ajax(
{
type: 'DELETE',
url: '/tagz',
data: {id: taskId},
success: function(data)
{
console.log(data);
}
});当我在chrome中看到控制台时,我发现请求头中发出的是GET请求,而不是DELETE。在firefox控制台中,我看到了以下内容。
23:50:52:658: Network: DELETE http://test.goje87.com/tagz [HTTP/1.1 301 Moved Permanently 947ms]
23:50:53:614: Network: GET http://test.goje87.com/tagz/ [HTTP/1.1 200 OK 400ms]在服务器端,我只是维护以下代码。
$reqMethod = $_SERVER['REQUEST_METHOD'];
switch($reqMethod)
{
case 'GET':
Utils::printR('Will provide the resource.');
selectObjects();
break;
case 'POST':
Utils::printR('Will create a new record.');
createObject();
break;
case 'PUT':
Utils::printR('Will update the record.');
break;
case 'DELETE':
Utils::printR('Will delete the record.');
Utils::output($_SERVER);
break;
}我没有看到请求进入case 'DELETE'。相反,它正在进入case 'GET'。
下面是我在服务器上用来清理urls的.htaccess文件。
RewriteEngine on
RewriteRule ^(.*)$ index.php [L,QSA]请帮我提出删除请求。谢谢!
发布于 2010-10-05 16:42:31
这样啊,原来是这么回事。:)
问题出在我在$.ajax中传递的url ('/tagz')。当我把它改成/tagz/ (在最后加了另一个斜杠)时,它在Chrome和火狐浏览器上就能正常工作了。
谢谢你们。
https://stackoverflow.com/questions/3851070
复制相似问题