Postmanを使用して、統合するAPIをテストし始めたばかりです。
次のエラーが表示されます
無効なCORSリクエスト
次のことに注意してください。
Invalid CORS request
エラー。私がこれまでに見つけたもの:
他の誰かが同じ問題を抱えている場合に備えて、それを解決する方法を以下に示します。 https://www.getpostman.com/docs/capture にアクセスして、chromeブラウザ。インターセプター拡張機能をクリックし、[クロムに追加]を選択します。信号機のように見えるブラウザと郵便配達員の両方の右上に新しいアイコンが追加されました。郵便配達員でこれをクリックすると緑色に変わります。次に、すべてのリクエストにヘッダーを追加します3番目のライト。すべてのヘッダーはヘッダー名と値で構成されています。入力を開始ヘッダー名と許可されたhttpヘッダーのリストが表示されます。「Origin」を選択します。値のセルにサーバーの完全なURL(「http://」または「https://」を忘れないでください)。
他の資料では、Access-Control-Allow-Method header
、preflight requests
...そして、CORSフローの説明的なApache Tomcatフローチャートがあります。
再び見つけた答えは次のとおりです。
他の誰かが同じ問題を抱えている場合に備えて、それを解決する方法を以下に示します。 https://www.getpostman.com/docs/capture にアクセスして、chromeブラウザ。インターセプター拡張機能をクリックし、[クロムに追加]を選択します。信号機のように見えるブラウザと郵便配達員の両方の右上に新しいアイコンが追加され、郵便配達員でこれをクリックすると緑色に変わります。
...太字のビットを翻訳したもの:
次に、リクエストにヘッダーを追加します。ヘッダーのキーは「Origin」で、ヘッダーの値はサーバーの完全なURLである必要があります(
http://
またはhttps://
)。
Chrome/Postmanでは、Interceptorプラグインを使用せずに、起源のキーを持つヘッダーを追加できないことに注意してください。
また、少なくとも私のシステムでは、Interceptorアイコンが信号機のように見えないことに注意してください。
バックエンドサービスサイドコードがリクエストの発信元をチェックする場合(CORS攻撃を避けるため)、郵便配達員を介してRest APIをテストするときにこの問題に直面する可能性があります。
これを解決する方法。?
ChromeプラグインPostman Interceptor(- https://chrome.google。 com/webstore/detail/postman-interceptor/aicmkgpgakddgnaphhhpliifpcfhicfo?hl = en )。
このプラグインを正常にインストールすると、PostmanクライアントにPostman Interceptorという小さなアイコンが表示されるので、オンに切り替えるには切り替える必要があります。
これで、以下のようにリクエストヘッダーを追加できます
RequestHeaderキー "Origin" RequestHeader値 "アプリケーションのベースURL"
今、あなたは乾杯に直面しているCORSの問題を克服することができるはずです!
サーバーがPostmanのマニュアルHTTP POSTから、orgが無効であることを「chrome-extension:// fhbjgbiflinjbdggehcddcbncdddomop」としてPostmanから受け取っているようです。
クライアント/ポストマン側で解決する理由または方法がわからない。サーバーは、それをそのまま拒否し、403を発行しているようです。
Postmanリクエストで設定された「Origin」ヘッダーの値は、APIバックエンドで許可される必要があります。たとえば、Spring Boot for APIを使用するには次が必要です。
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Value("${cors.allowedOrigins}")
private String allowedOrigins;
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins(allowedOrigins)
.allowedMethods("*")
.allowedHeaders("*");
}
}
allowedOriginsは、許可された発信元のコンマ区切りリストを含むapplication.properties
プロパティcors.allowedOrigins
を使用して設定されます。例:
cors.allowedOrings=http://localhost:8080,http://example.com
postmanの「Origin」値をcors.allowedOrigins
のURLに設定します