{"id":260,"date":"2021-01-15T14:28:00","date_gmt":"2021-01-15T06:28:00","guid":{"rendered":"https:\/\/22pig.com\/?p=260"},"modified":"2022-10-28T23:05:27","modified_gmt":"2022-10-28T15:05:27","slug":"springmvc%e8%a7%a3%e5%86%b3%e8%b7%a8%e5%9f%9f%e7%9a%84%e4%b8%a4%e7%a7%8d%e6%96%b9%e6%a1%88","status":"publish","type":"post","link":"http:\/\/22pig.com\/?p=260","title":{"rendered":"SpringMVC\u89e3\u51b3\u8de8\u57df\u7684\u4e24\u79cd\u65b9\u6848"},"content":{"rendered":"<h1 id=\"1-\u4ec0\u4e48\u662f\u8de8\u57df\">1. \u4ec0\u4e48\u662f\u8de8\u57df<\/h1>\n<p>\u8de8\u57df\uff0c\u5373\u8de8\u7ad9HTTP\u8bf7\u6c42(Cross-site HTTP request)\uff0c\u6307\u53d1\u8d77\u8bf7\u6c42\u7684\u8d44\u6e90\u6240\u5728\u57df\u4e0d\u540c\u4e8e\u8bf7\u6c42\u6307\u5411\u8d44\u6e90\u6240\u5728\u57df\u7684HTTP\u8bf7\u6c42\u3002<\/p>\n<h1 id=\"2-\u8de8\u57df\u7684\u5e94\u7528\u60c5\u666f\">2. \u8de8\u57df\u7684\u5e94\u7528\u60c5\u666f<\/h1>\n<p>\u5f53\u4f7f\u7528\u524d\u540e\u7aef\u5206\u79bb\uff0c\u540e\u7aef\u4e3b\u5bfc\u7684\u5f00\u53d1\u65b9\u5f0f\u8fdb\u884c\u524d\u540e\u7aef\u534f\u4f5c\u5f00\u53d1\u65f6\uff0c\u5e38\u5e38\u6709\u5982\u4e0b\u60c5\u666f\uff1a<\/p>\n<ol>\n<li>\u540e\u7aef\u5f00\u53d1\u5b8c\u6bd5\u5728\u670d\u52a1\u5668\u4e0a\u8fdb\u884c\u90e8\u7f72\u5e76\u7ed9\u524d\u7aefAPI\u6587\u6863\u3002<\/li>\n<li>\u524d\u7aef\u5728\u672c\u5730\u8fdb\u884c\u5f00\u53d1\u5e76\u5411\u8fdc\u7a0b\u670d\u52a1\u5668\u4e0a\u90e8\u7f72\u7684\u540e\u7aef\u53d1\u9001\u8bf7\u6c42\u3002<br \/>\n\u5728\u8fd9\u79cd\u5f00\u53d1\u8fc7\u7a0b\u4e2d\uff0c\u5982\u679c\u524d\u7aef\u60f3\u8981\u4e00\u8fb9\u5f00\u53d1\u4e00\u8fb9\u6d4b\u8bd5\u63a5\u53e3\uff0c\u5c31\u9700\u8981\u4f7f\u7528\u8de8\u57df\u7684\u65b9\u5f0f\u3002<\/li>\n<\/ol>\n<h1 id=\"3-\u901a\u8fc7\u6ce8\u89e3\u7684\u65b9\u5f0f\u5141\u8bb8\u8de8\u57df\">3. \u901a\u8fc7\u6ce8\u89e3\u7684\u65b9\u5f0f\u5141\u8bb8\u8de8\u57df<button class=\"cnblogs-toc-button\" title=\"\u663e\u793a\u76ee\u5f55\u5bfc\u822a\" aria-expanded=\"false\"><\/button><\/h1>\n<p>\u975e\u5e38\u7b80\u5355\uff0c\u6211\u4eec\u53ef\u4ee5\u5728Controller\u7c7b\u6216\u5176\u65b9\u6cd5\u4e0a\u52a0<code>@CrossOrigin<\/code>\u6ce8\u89e3\uff0c\u6765\u4f7f\u4e4b\u652f\u6301\u8de8\u57df\u3002<br \/>\n\u4e3e\u4f8b\uff1a<\/p>\n<pre class=\"highlighter-hljs\"><code class=\"language-Java highlighter-hljs hljs\"><span class=\"hljs-meta\">@CrossOrigin(origins = \"*\", maxAge = 3600)<\/span>\n<span class=\"hljs-meta\">@RestController<\/span>\n<span class=\"hljs-meta\">@RequestMapping(\"\/User\")<\/span>\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">UserController<\/span> {\n}\n<\/code><\/pre>\n<p>\u5176\u4e2dorigins\u4e3aCrossOrigin\u7684\u9ed8\u8ba4\u53c2\u6570\uff0c\u5373\u8de8\u57df\u6765\u6e90\uff0c*\u5373\u4efb\u4f55\u6765\u6e90\uff0c\u4e5f\u53ef\u4ee5\u662f\u5176\u4ed6\u57df\u540d\u3002\u5373\u53ef\u4ee5\u4ee5\u4ee5\u4e0b\u5f62\u5f0f\uff1a<\/p>\n<pre class=\"highlighter-hljs\"><code class=\"language-Java highlighter-hljs hljs\"><span class=\"hljs-meta\">@CrossOrigin(\"http:\/\/test.com\")<\/span>\n<span class=\"hljs-meta\">@CrossOrigin(origins=\"http:\/\/test.com\",maxAge=3600)<\/span>\n<\/code><\/pre>\n<p>\u8be5\u6ce8\u89e3\u7528\u4e8e\u65b9\u6cd5\u4e0a\uff0c\u5199\u6cd5\u76f8\u540c\uff0c\u5904\u7406\u65f6\uff0cSpringMVC\u4f1a\u5bf9\u7c7b\u4e0a\u6807\u7b7e\u548c\u65b9\u6cd5\u4e0a\u6807\u7b7e\u8fdb\u884c\u5408\u5e76\u3002<\/p>\n<h1 id=\"4-\u901a\u8fc7\u914d\u7f6e\u6587\u4ef6\u7684\u65b9\u5f0f\u5141\u8bb8\u8de8\u57df\">4. \u901a\u8fc7\u914d\u7f6e\u6587\u4ef6\u7684\u65b9\u5f0f\u5141\u8bb8\u8de8\u57df<\/h1>\n<p>\u5728web.xml\u4e2d\u6dfb\u52a0\u5982\u4e0b\u914d\u7f6e\uff1a<\/p>\n<pre class=\"highlighter-hljs\"><code class=\"language-XML highlighter-hljs hljs\">    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">filter-mapping<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">filter-name<\/span>&gt;<\/span>CorsFilter<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">filter-name<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">url-pattern<\/span>&gt;<\/span>\/*<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">url-pattern<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">filter-mapping<\/span>&gt;<\/span>\n<\/code><\/pre>\n<p>\u4f7f\u7528\u8fd9\u4e2aFilter\u5373\u53ef\u8ba9\u6574\u4e2a\u670d\u52a1\u5668\u5168\u5c40\u5141\u8bb8\u8de8\u57df\u3002<\/p>\n<p>\u51fa\u5904\uff1ahttps:\/\/www.cnblogs.com\/cielosun\/p\/6741307.html<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. \u4ec0\u4e48\u662f\u8de8\u57df \u8de8\u57df\uff0c\u5373\u8de8\u7ad9HTTP\u8bf7\u6c42(Cross-site HTTP request)\uff0c\u6307\u53d1\u8d77\u8bf7\u6c42\u7684\u8d44\u6e90\u6240\u5728\u57df\u4e0d\u540c\u4e8e\u8bf7\u6c42\u6307\u5411\u8d44\u6e90\u6240\u5728\u57df\u7684HTTP\u8bf7\u6c42\u3002 2. \u8de8\u57df\u7684\u5e94\u7528\u60c5\u666f \u5f53\u4f7f\u7528\u524d\u540e\u7aef\u5206\u79bb\uff0c\u540e\u7aef\u4e3b\u5bfc\u7684\u5f00\u53d1\u65b9\u5f0f\u8fdb\u884c\u524d\u540e\u7aef\u534f\u4f5c\u5f00\u53d1\u65f6\uff0c\u5e38\u5e38\u6709\u5982\u4e0b\u60c5\u666f\uff1a \u540e\u7aef\u5f00\u53d1\u5b8c\u6bd5\u5728\u670d\u52a1\u5668\u4e0a\u8fdb\u884c\u90e8\u7f72\u5e76\u7ed9\u524d\u7aefAPI\u6587\u6863\u3002 \u524d\u7aef\u5728\u672c\u5730\u8fdb\u884c\u5f00\u53d1\u5e76\u5411\u8fdc\u7a0b\u670d\u52a1\u5668\u4e0a\u90e8\u7f72\u7684\u540e\u7aef\u53d1\u9001\u8bf7\u6c42\u3002 \u5728\u8fd9\u79cd\u5f00\u53d1\u8fc7\u7a0b\u4e2d\uff0c\u5982\u679c\u524d\u7aef\u60f3\u8981\u4e00\u8fb9\u5f00\u53d1\u4e00\u8fb9\u6d4b\u8bd5\u63a5\u53e3\uff0c\u5c31\u9700\u8981\u4f7f\u7528\u8de8\u57df\u7684\u65b9\u5f0f\u3002 3. \u901a\u8fc7\u6ce8\u89e3\u7684\u65b9\u5f0f\u5141\u8bb8\u8de8\u57df \u975e\u5e38\u7b80\u5355\uff0c\u6211\u4eec\u53ef\u4ee5\u5728Controller\u7c7b\u6216\u5176\u65b9\u6cd5\u4e0a\u52a0@CrossOrigin\u6ce8\u89e3\uff0c\u6765\u4f7f\u4e4b\u652f\u6301\u8de8\u57df\u3002 \u4e3e\u4f8b\uff1a @CrossOrigin(origins = &#8220;*&#8221;, maxAge = 3600) @RestController @RequestMapping(&#8220;\/User&#8221;) public class UserController { } \u5176\u4e2dorigins\u4e3aCrossOrigin\u7684\u9ed8\u8ba4\u53c2\u6570\uff0c\u5373\u8de8\u57df\u6765\u6e90\uff0c*\u5373\u4efb\u4f55\u6765\u6e90\uff0c\u4e5f\u53ef\u4ee5\u662f\u5176\u4ed6\u57df\u540d\u3002\u5373\u53ef\u4ee5\u4ee5\u4ee5\u4e0b\u5f62\u5f0f\uff1a @CrossOrigin(&#8220;http:\/\/test.com&#8221;) @CrossOrigin(origins=&#8221;http:\/\/test.com&#8221;,maxAge=3600) \u8be5\u6ce8\u89e3\u7528\u4e8e\u65b9\u6cd5\u4e0a\uff0c\u5199\u6cd5\u76f8\u540c\uff0c\u5904\u7406\u65f6\uff0cSpringMVC\u4f1a\u5bf9\u7c7b\u4e0a\u6807\u7b7e\u548c\u65b9\u6cd5\u4e0a\u6807\u7b7e\u8fdb\u884c\u5408\u5e76\u3002 4. \u901a\u8fc7\u914d\u7f6e\u6587\u4ef6\u7684\u65b9\u5f0f\u5141\u8bb8\u8de8\u57df \u5728web.xml\u4e2d\u6dfb\u52a0\u5982\u4e0b\u914d\u7f6e\uff1a &lt;filter-mapping&gt; &lt;filter-name&gt;CorsFilter&lt;\/filter-name&gt; &lt;url-pattern&gt;\/*&lt;\/url-pattern&gt; &lt;\/filter-mapping&gt; \u4f7f\u7528\u8fd9\u4e2aFilter\u5373\u53ef\u8ba9\u6574\u4e2a\u670d\u52a1\u5668\u5168\u5c40\u5141\u8bb8\u8de8\u57df\u3002 \u51fa\u5904\uff1ahttps:\/\/www.cnblogs.com\/cielosun\/p\/6741307.html<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-260","post","type-post","status-publish","format-standard","hentry","category-java"],"_links":{"self":[{"href":"http:\/\/22pig.com\/index.php?rest_route=\/wp\/v2\/posts\/260","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/22pig.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/22pig.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/22pig.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/22pig.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=260"}],"version-history":[{"count":1,"href":"http:\/\/22pig.com\/index.php?rest_route=\/wp\/v2\/posts\/260\/revisions"}],"predecessor-version":[{"id":739,"href":"http:\/\/22pig.com\/index.php?rest_route=\/wp\/v2\/posts\/260\/revisions\/739"}],"wp:attachment":[{"href":"http:\/\/22pig.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=260"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/22pig.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=260"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/22pig.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}