添加双httpHeaders
我想在我的回复中添加httpHeader
我想用这个代码:
private void AddCustomHeader() { if (string.IsNullOrEmpty(HttpContext.Response.Headers.Get("Access-Control-Allow-Origin"))) { // Custom header HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "*"); } }
但是当使用VS_server运行时,它将始终在localhost上失败
This operation requires IIS integrated pipeline mode.
如果我添加已存在的标题会发生什么?
HttpContext.Response.AddHeader("name","value");
我会说(总结评论),你应该尝试使用:
HttpContext.Current.Response.Headers.Set("Access-Control-Allow-Origin", "*");
如
- 它将替换相应标头的任何现有值
-
Response.AddHeader
就是为了保持与以前版本的兼容性
关于您获得的exception,您应该尝试打开您的Web项目属性,“Web”=>选中“使用本地IIS Web服务器”(而不是“使用VS开发服务器”)。
根据您的配置,您可能需要选中“使用IIS Express”
此外,这应该是自定义标头https://stackoverflow.com/a/15043027/1236044的一些帮助
关于此操作需要IIS集成管道模式错误:
- 在IIS管理器中选择应用程序池
- 点击“基本设置…”
- 确保在对话框中为“托管管道模式”选择“集成”模式
来源 。
关于你的第二个问题(如果你添加一个已经存在的标题会发生什么),它只会添加另一个具有相同名称的值:
HttpContext.Response.AddHeader("name", "value1"); HttpContext.Response.AddHeader("name", "value2");
将导致带有name
和值value1, value2
的标头(在ASP.NET 4.5,IIS Express中尝试过,但我怀疑这很重要。)