Cors 如何在swagger api资源管理器上添加自定义标题
我正在尝试在标题中添加Cors 如何在swagger api资源管理器上添加自定义标题,cors,swagger-ui,Cors,Swagger Ui,我正在尝试在标题中添加访问控制允许原点。为此,我添加了以下行: window.swaggerUi.api.clientAuthorizations.add("headerKey", apiKeyAuth); window.swaggerUi.api.clientAuthorizations.add("headerKey", new SwaggerClient.ApiKeyAuthorization('Allow-Access-Control-Origin', '*', "header"));
访问控制允许原点
。为此,我添加了以下行:
window.swaggerUi.api.clientAuthorizations.add("headerKey", apiKeyAuth);
window.swaggerUi.api.clientAuthorizations.add("headerKey", new SwaggerClient.ApiKeyAuthorization('Allow-Access-Control-Origin', '*', "header"));
不幸的是,我在浏览请求头时发现了以下情况:
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:accept, developer_key, access-control-allow-origin
Access-Control-Request-Method:GET
Connection:keep-alive
请求标头中没有添加额外的自定义标头。它正在将我的\u访问控制-allow-origin\u
作为值添加到访问控制请求头中
我想将此\u access-control-allow-origin\u
添加为新的自定义标题,如:
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:accept, developer_key
Access-Control-Allow-Origin: *
Access-Control-Request-Method:GET
Connection:keep-alive
有人能告诉我我做错了什么,或者我应该做些什么来完成这项工作吗?看起来您想通过从客户端的Swagger UI a.k.a添加访问控制允许源站
标题来启用CORS。但是,您应该在服务器端启用CORS。还指出:
启用CORS的方法取决于用于承载应用程序的服务器和/或框架
关于CORS的简短背景:
当web浏览器和/或JavaScript工具包想要向另一个域上的主机/服务器发送HTTP请求时,它会添加一些与CORS相关的头,例如访问控制请求方法
(对于请求HTTP方法)和访问控制请求头
(对于HTTP请求中的头列表)。在服务器端,如果请求方法和头被允许,服务器将发送一个HTTP响应,该响应具有访问控制允许源
头。浏览器将阻止没有此标题的响应
至于为什么头出现在访问控制请求头:accept、developer\u key、Access Control allow origin
中,原因是您的浏览器或JS工具包将访问控制allow origin
视为您的代码发送到服务器的常规自定义头。如果HTTP请求有效,则探测服务器
您可以在此处了解有关CORS的更多信息:
您还可以参考本节了解有关如何在服务器上启用CORS的更多信息