レコードIDの削除を行うために、asp.net webapiでIIS 7.5を使用しています。Safari では動作しますが、Firefox では動作しません。jQuery Ajax 送信のリクエスト/レスポンスのイメージを次に示します。
http://screencast.com/t/Ckls9nO8D
jQuery Delete サブミッションのコード スニペットは次のとおりです。
var deleteGame = function(gameId)
{
var d = $.Deferred();
var url = Enum.RootUrl + Enum.DeleteGameUrl + gameId;
jQuery.support.cors = true;
$.ajax(
{
url: url,
type: 'Delete',
cache: false,
crossDomain: true,
processData: true,
success: function ()
{
d.resolve();
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
//alert("error happened AGAIN:\n" + JSON.stringify(XMLHttpRequest) );
}
});
return d.promise();
};
jquery 送信用に生成された URL は次のとおりです: http://local.guessalist.com/api/game/46
Safari では機能するのに Firefox では機能しない理由がわかりません。助けてください。
Access-Control-Request-Headers が Request Headers から欠落しているようです。これが問題の原因かどうかはわかりません。
SafariとChromeでこれをいじった後、「安全でないヘッダー「Access-Control-Request-Headers」の設定を拒否しました」OPTIONS http://local.guessalist.com/api/game/64 405 (Method Not Allowed )」というエラーがブラウザのコンソールを介して各ブラウザに表示されますが、削除操作は続行できます。ここで何をしているのかわかりません。アドバイスをいただければ幸いです。