3

次のようにjqueryのajaxメソッドを使用して削除リクエストを作成しようとしています

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

Chrome でコンソールを見ると、リクエスト ヘッダーで、DELETE ではなく GET リクエストが行われていることがわかります。そして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'ます。

以下は、クリーンな URL の目的でサーバーで使用している .htaccess ファイルです。

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

DELETE リクエストの作成を手伝ってください。ありがとう!

4

3 に答える 3

2

わかった。:)

/tagz問題は、渡していた URL (' ') にありました$.ajax/tagz/(最後に別のスラッシュを追加)に変更すると、Chrome と Firefox で正常に動作し始めました。

みんなありがとう。

于 2010-10-05T08:42:31.240 に答える
1

DELETE メソッドは明らかに Chrome ブラウザーではサポートされていません。

于 2010-10-03T18:47:05.547 に答える
0

Web サーバーが DELETE メソッドを許可していないようです。すべてのリクエストに POST メソッドを使用し、代わりに実行するアクションを含む変数「アクション」を提供してみませんか?

于 2010-10-03T18:52:36.757 に答える