如何使用 Jquery Ajax 发送自定义标头并使用 C# 在 WCF 服务中检索相同的标头值?

Posted

技术标签:

【中文标题】如何使用 Jquery Ajax 发送自定义标头并使用 C# 在 WCF 服务中检索相同的标头值?【英文标题】:How To Send Custom Header using Jquery Ajax and Retrieve the same header value in WCF Service using C#? 【发布时间】:2016-06-22 05:38:39 【问题描述】:

我尝试像这样从 Jquery Ajax 发送标头值

$.ajaxSetup(
    url:http://my url
    headers:  "CustomHeader": "myValue" 
);

但我不能使用 C# 在 wcf 服务中使用此标头值。如果有任何方法可以使用 ajax 发送自定义标头并在 wcf 服务中检索相同的标头

提前致谢

【问题讨论】:

它应该可以工作。您如何访问您的标题。 字符串消息 = OperationContext.Current.RequestContext.RequestMessage.ToString(); 阅读此链接可能会对您有所帮助:Read Request Header in wcf 【参考方案1】:

使用 jQuery 的ajax 方法,我将发送这样的标题:

$.ajax(       
    url: varUrl, // Location of the service  
    headers: 
        "Test": "Test-Value", // "Header-name" : "Header-value"          
           
);

在 WCF 中,我将使用这样的标头:

//retrieve your header value using "Header-name"...    
WebOperationContext current = WebOperationContext.Current;
WebHeaderCollection headers = current.IncomingRequest.Headers;
string Test= current.IncomingRequest.Headers.GetValues("Test")[0].ToString();

【讨论】:

以上是关于如何使用 Jquery Ajax 发送自定义标头并使用 C# 在 WCF 服务中检索相同的标头值?的主要内容,如果未能解决你的问题,请参考以下文章

AJAX 使用 CORS 获取自定义响应标头

带有 jquery.ajax() 的跨域“授权”标头

jquery $.ajax 自定义 http 标头问题

jQuery Ajax 访问自定义响应标头

Spring MVC过滤器获取自定义jquery ajax标头

带有自定义标头的跨域 jquery ajax api 调用未命中服务器