Goje87
Goje87

Reputation: 2869

DELETE request in ajax giving 301 moved response

I am trying to make a delete request using ajax method of jquery as follows

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

And when I see the console in chrome, I find in the request headers that a GET request is made instead of DELETE. and in firefox console I see the following.

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]

On server side I am simply maintaining the following code.

$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;
}

I don't see the request getting into the case 'DELETE'. It's getting into the case 'GET' instead.

Following is the .htaccess file that I am using at the server for the purpose of clean urls.

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

Please help me in making DELETE requests. Thanks!

Upvotes: 3

Views: 1568

Answers (3)

Goje87
Goje87

Reputation: 2869

I got it. :)

The problem was with the url ('/tagz') that I was passing in $.ajax. When I changed it to /tagz/ (added another forward slash at the end) it started working fine in Chrome and Firefox.

Thanks guys.

Upvotes: 2

Liam Bailey
Liam Bailey

Reputation: 5905

The DELETE method is obviously not supported by the Chrome browser.

Upvotes: 1

Slavic
Slavic

Reputation: 1962

It looks like the web server does not allow for DELETE method. Why don't you just use POST method for all your requests and supply instead a variable "action" that will contain the action to be carried?

Upvotes: 0

Related Questions