質問

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

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

また、Chromeでコンソールを見ると、リクエストヘッダーで削除する代わりにGet Requestが作成されていることがわかります。そして、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]

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

役に立ちましたか?

解決

わかった。 :)

問題はURLにありました( '/tagz')私が渡っていたこと $.ajax. 。私がそれを変更したとき /tagz/ (最後に別のフォワードスラッシュを追加しました)ChromeとFirefoxで正常に動作し始めました。

みんなありがとう。

他のヒント

削除方法は、明らかにChromeブラウザによってサポートされていません。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top