問題
以前は、バックエンドの制御層コードを作成するときに、
フロントエンドが独自のリクエストを作成するときに、クロスドメインの問題が発生することがよくありました。
なぜですか?IDEAから直接
バックエンドサービスポート8080を開きます
。
静的リソースファイルhtmlにはjqueryリクエストがあり
ます。ブラウザはポートが
63342であることを検出しました。リクエストはcorsによってインターセプトされました
明らかに、127.0.0.1:63342と127.0.0.1:8080は同じポートではありません
ハグワン
Access to XMLHttpRequest at xxx orgin xxx ...
ドメインを越えてアクセスすることはできません!
その行を変更し、バックエンドコードを変更
し、コントローラーに追加しました
@CrossOrigin("*")
最も簡単な方法で解決できます
注釈付きバージョンは、Spring Bootの下で構成できます
@Configuration
public class MyConfiguration {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**");
// 这样可以调整颗粒度 更加自由
registy.addMapping("/api");
}
};
}
}
xmlバージョン
<mvc:cors>
<mvc:mapping path=""/>
</mvc:cors>
まとめ
XMLHttpRequestリクエストのみがクロスドメインを持っています
一般的なものは、ネイティブXmlリクエスト
jqueryカプセル化XmLリクエストです。
通常のhref = "https:// xxx"は表示されません
非相同、非相同、および非相同プロトコルはクロスドメインを生成します