AngularJSでdeleteがOPTIONSになって失敗する。
AngularJSを使用していて、以下のコードでサーバサイドAPIのデリートを呼び出したのですが、デリートできずになぜかメソッドがOPTIONSになってしまいます。
$scope.delete = function(video){
//delete
Video.delete({id: video.id});
};
GoogleのdevtoolのGeneralは以下のようになっています。
Remote Address:[::1]:9000
Request URL:http://localhost:9000/video/1
Request Method:OPTIONS
Status Code:404 Not Found
またRequest Headersは以下のようになっています。
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:ja,en-US;q=0.8,en;q=0.6
Access-Control-Request-Headers:accept
Access-Control-Request-Method:DELETE
Connection:keep-alive
Host:localhost:9000
Origin:http://localhost:8000
Referer:http://localhost:8000/
Request HeadersではメソッドはDELETEなのに、GeneralではOPTIONSになっています。
また、AngularJSを使わないでDELETEした場合は正常に削除されていたので、サーバーサイドには問題はないと考えています。
同様の問題がPOST時にも起きてそのときはconfigに以下のコードを追加し問題はなおりましたが、DELETEの場合どう直せばいいのかわかりません。もしわかればご教授いただけるとありがたいです。
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;application/json;charset=utf-8';