magento APIにアクセスするために私のアプリケーション内でトークン認証を使用しています。 I郵便配達で、次の設定を行うと、それが正常に動作します: Magento 2トークン認証 - 400エラー/ CORSの問題
しかし、プリフライトのためのHTTP動詞オプションをサポートしていないようだと、私は一貫して戻って400エラーを取得するjQueryのポストを使用して(私はnginxのためのCORSの設定を持っています)。私は試しました:
$.ajax({
method: "POST",
url: `myip/index.php/rest/V1/integration/admin/token`,
data: {username: 'ember-app', password: 'ember-app2'},
}).done(function(response) {
alert(response);
});
$.ajax({
method: "POST",
url: `myip/index.php/rest/V1/integration/admin/token?username=ember-app&password=ember-app2`
}).done(function(response) {
alert(response);
});
$.post(
'myip/index.php/rest/V1/integration/admin/token',
{username: 'ember-app', password: 'ember-app2'},
function(response) { alert(response); }
);
私はまた、オブジェクトの周りにJSON.stringifyを試してみました。なぜそれは郵便配達で働くのですか?xhrでは私は常に400のエラーを受け取りますか?さらに、この要求は、GETに対する別の要求をトリガし、corsエラーを返します。コンソールでこれを原因.postいくつかの私の$:ここ
は、いくつかのcURLの応答です:
{"message":"Request method is invalid."}
同じで:
curl -H "Origin: http://localhost:4200" \
-H "Access-Control-Request-Method: POST" \
-H "Access-Control-Request-Headers: X-Requested-With" \
-d '{"username": "ember-app", "password": "ember-app2"}'\
-X OPTIONS --verbose https://myhost/index.php/rest/V1/integration/admin/token
がある応答を与えます
curl -H "Origin: http://localhost:4200" \
-H "Access-Control-Request-Method: POST" \
-H "Access-Control-Request-Headers: X-Requested-With" \
-X OPTIONS --verbose https://myhost/index.php/rest/V1/integration/admin/token?username=ember-app&password=ember-app2
しかし、通常のカールポストを行うと、正常に動作します:それは最初のリソースを提供しています1とは異なるドメインからリソースを要求すると
curl -H "Content-Type: application/json" -X POST -d '{"username":"ember-app","password":"ember-app2"}' https://myhos/index.php/rest/V1/integration/admin/token
さらに '$の.post( 'MYIP/index.phpを/休憩/ V1 /統合/管理/トークン?ユーザ名=燃えさしアプリ&パスワード=燃えさし-APP2'、機能(応答){ はconsole.log(あなたはCORSエラーを返すURLにGETを引き起こします – rickyduck
NginxのCORS設定を共有することもできますか? – HiDeo