我试图使使用jquery的AJAX方法的删除请求如下

$.ajax(
{
  type: 'DELETE',
  url: '/tagz',
  data: {id: taskId},
  success: function(data)
  {
    console.log(data);
  }
});

当我在Chrome中看到控制台,我发现在请求头,一个GET请求发出的,而不是DELETE。和在Firefox控制台I参阅以下内容。

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'代替。

以下是.htaccess文件,我使用的服务器的URL清洁的目的。

RewriteEngine on
RewriteRule ^(.*)$ index.php [L,QSA]

请帮我在做DELETE请求。谢谢!

有帮助吗?

解决方案

我知道了。 :)

的问题是与URL(“/tagz”),我被传递$.ajax。当我把它改为/tagz/(加末另一斜杠)就开始在Chrome和Firefox浏览器工作正常。

由于球员。

其他提示

在DELETE方法显然不是由Chrome浏览器所支持。

它看起来像web服务器不允许DELETE方法。你为什么不只是使用POST方法用于所有请求和提供,而不是一个变量“行动”将包含动作进行?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top