background.js
Chrome拡張機能からPOSTリクエストを送信しようとすると、403 Forbidden
エラーが発生します。Chrome拡張機能の外で同じコードを実行すると、正常に動作します。私のAPIは認証を必要としません。
リクエストコード:
let formData = new FormData();
formData.append('message', "This is a test message.");
fetch('https://myapi.com/add', {
body: formData,
method: "post"
}).then(r => console.log(r));
リクエストの応答:
私は私のApache 2もチェックしました、access.log
そしてすべてが正常に見えるようです:
x.x.x.x - - [13/Sep/2020:17:02:30 +0000] "POST add HTTP/1.1" 403 581 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36"
リクエストをブロックする可能性のあるChrome拡張ポリシーはありますか?
私に特別な権限を追加する必要がありmanifest.json
ますか?
APIに変更を加える必要がありますか(これはChrome拡張機能の外で通常動作するため、予備として使用してください)?
問題はDjango RESTフレームワークにありました。どうやら、デフォルトで有効になっている認証クラスがいくつかあります。それらを無効化/空の配列に設定するとsettings.py
、迷惑な「403 Forbidden」エラーが解消されます。
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
]
}
編集:これがどれほど安全かはわかりませんが、少なくともうまくいきます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加