{"id":134,"date":"2020-02-14T08:01:05","date_gmt":"2020-02-13T23:01:05","guid":{"rendered":"http:\/\/sumomo.ohwaki.jp\/wordpress\/?p=134"},"modified":"2020-02-14T08:05:13","modified_gmt":"2020-02-13T23:05:13","slug":"asp-net-core-web-api-cors","status":"publish","type":"post","link":"https:\/\/sumomo.ohwaki.jp\/wordpress\/?p=134","title":{"rendered":"asp.net core Web API CORS"},"content":{"rendered":"\n<p>asp.net core Web API\u3067\u306f\u30c7\u30d5\u30a9\u30eb\u30c8\u3067CORS (Cross Origin Resource Sharing) \u304c\u30c7\u30a3\u30bb\u30fc\u30d6\u30eb\u306b\u306a\u3063\u3066\u3044\u308b\u305f\u3081\u3001\u5225\u30b5\u30a4\u30c8\u304b\u3089\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u5074\u3067\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u3066\u3057\u307e\u3046\u3002<\/p>\n\n\n\n<p>CORS\u3092\u6709\u52b9\u306b\u3059\u308b\u306b\u306f\u3001Startup.cs\u306b\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u3001\u8a2d\u5b9a\u304c\u5fc5\u8981\u3068\u306a\u308b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public IConfiguration Configuration { get; }\npublic Startup(IServiceConfiguration configuration) {\n  Configuration = configuration;\n}\npublic void ConfigureServices(IServiceCollection services)\n{\n  \/\/ CORS\u30dd\u30ea\u30b7\u30fc\u306e\u8ffd\u52a0\n  services.AddCors(options =>\n  {\n    options.AddPolicy(\"AllowAllOriginsPolicy\", \/\/ \u540d\u524d\u306f\u4f55\u3067\u3082\u826f\u3044\n      builder =>\n      {\n        \/\/ \u3053\u306e\u4f8b\u3067\u306f\u5168\u30db\u30b9\u30c8\u304b\u3089\u53d7\u4ed8\u3051\u53ef\u80fd(\u3069\u3046\u305b\u3001FW\u3067\u30d6\u30ed\u30c3\u30af\u3055\u308c\u308b\u3057\u30fb\u30fb\u30fb)\n        \/\/ \u30db\u30b9\u30c8\u3092\u5236\u9650\u3059\u308b\u306b\u306f\u3001.WithOrigins\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\n        \/\/ \u30d8\u30c3\u30c0\u3092\u5236\u9650\u3059\u308b\u306b\u306f\u3001.WithHeaders\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\n        \/\/ HTTP\u30e1\u30bd\u30c3\u30c9\u3092\u5236\u9650\u3059\u308b\u306b\u306f\u3001.WithMethods\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\n        builder.AllowAnyOrigin();\n       });\n  });\n  services.AddControllers();\n}\n<\/code><\/pre>\n\n\n\n<p>\u2191\u306e\u4f8b\u3067\u306f\u3001\u5168\u3066\u306e\u30db\u30b9\u30c8\u304b\u3089\u306e\u63a5\u7d9a\u3092\u8a31\u53ef\u3057\u3066\u3044\u308b\u3002<br>\u7279\u5b9a\u306e\u30db\u30b9\u30c8\u3060\u3051\u8a31\u53ef\u3059\u308b\u306b\u306f\u3001.WithOrigins\u3092\u4f7f\u7528\u3059\u308b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    builder.WithOrigins(\"http:\/\/boo.foo.com\",\"http:\/\/www.boo.foo.com\");<\/code><\/pre>\n\n\n\n<p>\u5f8c\u306f\u3001Configura\u30e1\u30bd\u30c3\u30c9\u306e\u4e2d\u3067\u3001\u5168\u3066\u306e\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u306b\u9069\u7528\u3059\u308b\u304b\u3001\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u6bce\u306b\u9069\u7528\u3059\u308b\u304b\u306b\u3088\u3063\u3066\u3001\u6307\u5b9a\u304c\u7570\u306a\u308b\u3002<br>\u5168\u3066\u306e\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u306b\u9069\u7528\u3059\u308b\u306b\u306f\u3001Configure\u30e1\u30bd\u30c3\u30c9\u306e\u4e2d\u3067\u3001<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>  app.UseCors();<\/code><\/pre>\n\n\n\n<p>\u3092\u547c\u3073\u51fa\u3059\u3002<\/p>\n\n\n\n<p>\u8a73\u3057\u304f\u306f\u3001<\/p>\n\n\n\n<p><a href=\"https:\/\/docs.microsoft.com\/ja-jp\/aspnet\/core\/security\/cors?view=aspnetcore-3.1\">https:\/\/docs.microsoft.com\/ja-jp\/aspnet\/core\/security\/cors?view=aspnetcore-3.1<\/a><\/p>\n\n\n\n<p>\u3092\u53c2\u7167\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>asp.net core Web API\u3067\u306f\u30c7\u30d5\u30a9\u30eb\u30c8\u3067CORS (Cross  &hellip; <a href=\"https:\/\/sumomo.ohwaki.jp\/wordpress\/?p=134\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,9,11,4],"tags":[],"class_list":["post-134","post","type-post","status-publish","format-standard","hentry","category-asp-net-core","category-c","category-dotnetcore","category-4"],"_links":{"self":[{"href":"https:\/\/sumomo.ohwaki.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/134","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sumomo.ohwaki.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sumomo.ohwaki.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sumomo.ohwaki.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sumomo.ohwaki.jp\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=134"}],"version-history":[{"count":3,"href":"https:\/\/sumomo.ohwaki.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/134\/revisions"}],"predecessor-version":[{"id":137,"href":"https:\/\/sumomo.ohwaki.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/134\/revisions\/137"}],"wp:attachment":[{"href":"https:\/\/sumomo.ohwaki.jp\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=134"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sumomo.ohwaki.jp\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=134"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sumomo.ohwaki.jp\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=134"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}