{"id":8312,"date":"2023-11-28T20:24:20","date_gmt":"2023-11-28T12:24:20","guid":{"rendered":"https:\/\/wx.kaifamiao.info\/?p=8312"},"modified":"2023-12-06T10:17:00","modified_gmt":"2023-12-06T02:17:00","slug":"springboot-ru-he-she-zhi-zhi-chi-kua-yu-qing-qiu","status":"publish","type":"post","link":"http:\/\/wx.kaifamiao.info\/index.php\/2023\/11\/28\/springboot-ru-he-she-zhi-zhi-chi-kua-yu-qing-qiu\/","title":{"rendered":"SpringBoot\u5982\u4f55\u8bbe\u7f6e\u652f\u6301\u8de8\u57df\u8bf7\u6c42\uff1f"},"content":{"rendered":"<p>\u5728Spring Boot\u4e2d\uff0c\u8981\u8bbe\u7f6e\u652f\u6301\u8de8\u57df\u8bf7\u6c42\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528Spring Web \u63d0\u4f9b\u7684 <code>CorsRegistry<\/code> \u548c <code>WebMvcConfigurer<\/code> \u63a5\u53e3\u6765\u914d\u7f6e\u8de8\u57df\u8d44\u6e90\u5171\u4eab\uff08CORS\uff09\u3002\u4ee5\u4e0b\u662f\u4e00\u79cd\u7b80\u5355\u7684\u914d\u7f6e\u65b9\u6cd5\uff1a<\/p>\n<ol>\n<li>\u521b\u5efa\u4e00\u4e2a\u914d\u7f6e\u7c7b\uff0c\u5b9e\u73b0 <code>WebMvcConfigurer<\/code> \u63a5\u53e3\uff1a<\/li>\n<\/ol>\n<pre><code class=\"language-java\">import org.springframework.context.annotation.Configuration;\nimport org.springframework.web.servlet.config.annotation.CorsRegistry;\nimport org.springframework.web.servlet.config.annotation.WebMvcConfigurer;\n\n@Configuration\npublic class CorsConfig implements WebMvcConfigurer {\n\n    @Override\n    public void addCorsMappings(CorsRegistry registry) {\n        registry.addMapping(&quot;\/**&quot;)\n            .allowedOrigins(&quot;*&quot;)  \/\/ \u5141\u8bb8\u6240\u6709\u6765\u6e90\n            .allowedMethods(&quot;GET&quot;, &quot;POST&quot;, &quot;PUT&quot;, &quot;DELETE&quot;)  \/\/ \u5141\u8bb8\u7684\u8bf7\u6c42\u65b9\u6cd5\n            .allowedHeaders(&quot;*&quot;)  \/\/ \u5141\u8bb8\u7684\u8bf7\u6c42\u5934\n            .allowCredentials(true)  \/\/ \u662f\u5426\u652f\u6301\u8de8\u57df\u7528\u6237\u51ed\u8bc1\n            .maxAge(3600);  \/\/ \u9884\u68c0\u8bf7\u6c42\u7684\u6709\u6548\u671f\uff0c\u5355\u4f4d\u79d2\n    }\n}\n<\/code><\/pre>\n<p>\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c<code>addMapping(&quot;\/**&quot;)<\/code> \u8868\u793a\u5141\u8bb8\u6240\u6709\u7684\u8def\u5f84\u8fdb\u884c\u8de8\u57df\u8bbf\u95ee\uff0c\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u9700\u6c42\u4fee\u6539\u6210\u9002\u5f53\u7684\u8def\u5f84\u3002<\/p>\n<ol start=\"2\">\n<li>\n\u4e0a\u8ff0\u914d\u7f6e\u5c06\u5141\u8bb8\u6240\u6709\u6765\u6e90\uff08<code>allowedOrigins(&quot;*&quot;)<\/code>\uff09\uff0c\u652f\u6301\u7684\u8bf7\u6c42\u65b9\u6cd5\u4e3a GET\u3001POST\u3001PUT \u548c DELETE\uff08<code>allowedMethods(&quot;GET&quot;, &quot;POST&quot;, &quot;PUT&quot;, &quot;DELETE&quot;)<\/code>\uff09\uff0c\u5141\u8bb8\u6240\u6709\u8bf7\u6c42\u5934\uff08<code>allowedHeaders(&quot;*&quot;)<\/code>\uff09\uff0c\u652f\u6301\u8de8\u57df\u7528\u6237\u51ed\u8bc1\uff08<code>allowCredentials(true)<\/code>\uff09\uff0c\u5e76\u8bbe\u7f6e\u9884\u68c0\u8bf7\u6c42\u7684\u6709\u6548\u671f\u4e3a 3600 \u79d2\uff08<code>maxAge(3600)<\/code>\uff09\u3002\n<\/li>\n<li>\n\u6ce8\u518c\u914d\u7f6e\u7c7b\uff0c\u53ef\u4ee5\u901a\u8fc7\u5728\u4e3b\u5e94\u7528\u7a0b\u5e8f\u7c7b\uff08<code>@SpringBootApplication<\/code> \u6ce8\u89e3\u7684\u7c7b\uff09\u4e0a\u6dfb\u52a0 <code>@Import(CorsConfig.class)<\/code> \u6765\u6ce8\u518c\u914d\u7f6e\uff1a\n<\/li>\n<\/ol>\n<pre><code class=\"language-java\">import org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework.context.annotation.Import;\n\n@SpringBootApplication\n@Import(CorsConfig.class)\npublic class YourSpringBootApplication {\n\n    public static void main(String[] args) {\n        SpringApplication.run(YourSpringBootApplication.class, args);\n    }\n}\n<\/code><\/pre>\n<p>\u901a\u8fc7\u4ee5\u4e0a\u914d\u7f6e\uff0c\u4f60\u7684Spring Boot \u5e94\u7528\u7a0b\u5e8f\u5c06\u652f\u6301\u8de8\u57df\u8bf7\u6c42\u3002\u8bf7\u6839\u636e\u5b9e\u9645\u9700\u6c42\u4fee\u6539\u914d\u7f6e\uff0c\u4ee5\u786e\u4fdd\u5b89\u5168\u6027\u548c\u7b26\u5408\u4f60\u7684\u5e94\u7528\u7a0b\u5e8f\u7684\u7279\u5b9a\u8981\u6c42\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5728Spring Boot\u4e2d\uff0c\u8981\u8bbe\u7f6e\u652f\u6301\u8de8\u57df\u8bf7\u6c42\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528Spring Web \u63d0\u4f9b\u7684 CorsRegistr [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[100],"tags":[],"class_list":["post-8312","post","type-post","status-publish","format-standard","hentry","category-springboot"],"_links":{"self":[{"href":"http:\/\/wx.kaifamiao.info\/index.php\/wp-json\/wp\/v2\/posts\/8312","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/wx.kaifamiao.info\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/wx.kaifamiao.info\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/wx.kaifamiao.info\/index.php\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"http:\/\/wx.kaifamiao.info\/index.php\/wp-json\/wp\/v2\/comments?post=8312"}],"version-history":[{"count":2,"href":"http:\/\/wx.kaifamiao.info\/index.php\/wp-json\/wp\/v2\/posts\/8312\/revisions"}],"predecessor-version":[{"id":16595,"href":"http:\/\/wx.kaifamiao.info\/index.php\/wp-json\/wp\/v2\/posts\/8312\/revisions\/16595"}],"wp:attachment":[{"href":"http:\/\/wx.kaifamiao.info\/index.php\/wp-json\/wp\/v2\/media?parent=8312"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/wx.kaifamiao.info\/index.php\/wp-json\/wp\/v2\/categories?post=8312"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/wx.kaifamiao.info\/index.php\/wp-json\/wp\/v2\/tags?post=8312"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}