putやdeleteを使うとOPTIONSに変わります。私はサーバーフレームワークのためにexpressjsを使用しています。
クライアント:
$http({
method: 'DELETE',
url: HTTP_URL + '/update/account',
params: { mail: mail }
});
サーバー:プリフライトのHTTP OPTIONS要求がCORSのために作られるため
app.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Credentials", true);
res.header('Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE');
res.header("Access-Control-Allow-Headers",
'Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept');
next();
});
どのようなエラーが発生しているかを明確にしてください。 @natwallbankと同じように、ブラウザはpreflight HTTP OPTIONSによって実際のリクエストを行うためのアクセス権を要求します。 http://www.html5rocks.com/en/tutorials/cors/ – iuriisusuk
これは、「単純ではない要求」を行っている場合に発生します.DELETEはそのような要求の1つです。 – iuriisusuk
私はOPTIONSを自分のAccess-Control-Allow-Methodsに許可しましたが、同じことが起こります。 – puppeteer701