Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cors 如何在swagger api资源管理器上添加自定义标题_Cors_Swagger Ui - Fatal编程技术网

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的更多信息