ASP.NETドメイン間構成
5370 ワード
エラーメッセージ
The 'Access-Control-Allow-Origin' header is present on the requested resource
ソリューション
web.config構成情報 "Replace">
"cors_allowOrigins" value="http://localhost:8002,http://192.168.0.1:8002" />
次の構成項目を追加しないと、ドメイン間では有効になりません.なぜか分かりません.
"4294967295">
"WebDAVModule" />
"WebDAV" />
"ExtensionlessUrlHandler-Integrated-4.0" />
"OPTIONSVerbHandler" />
"TRACEVerbHandler" />
"ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
対応コード、ドメイン間構成の初期化 public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
//
config.Filters.Add(new ApiErrorHandleAttribute());
// Web API
var allowOrigins = ConfigurationManager.AppSettings["cors_allowOrigins"];
var globalCors = new EnableCorsAttribute(allowOrigins, "*", "*")
{
SupportsCredentials = true
};
config.EnableCors(globalCors);
// Web API
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
補足
すべてのドメイン名を許可するように設定するには、SupportsCredentials=false、allowOrigins="*"を設定するだけです.
web.config構成情報
"Replace">
"cors_allowOrigins" value="http://localhost:8002,http://192.168.0.1:8002" />
次の構成項目を追加しないと、ドメイン間では有効になりません.なぜか分かりません.
"4294967295">
"WebDAVModule" />
"WebDAV" />
"ExtensionlessUrlHandler-Integrated-4.0" />
"OPTIONSVerbHandler" />
"TRACEVerbHandler" />
"ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
対応コード、ドメイン間構成の初期化
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
//
config.Filters.Add(new ApiErrorHandleAttribute());
// Web API
var allowOrigins = ConfigurationManager.AppSettings["cors_allowOrigins"];
var globalCors = new EnableCorsAttribute(allowOrigins, "*", "*")
{
SupportsCredentials = true
};
config.EnableCors(globalCors);
// Web API
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}