我有以下要求:
var response = $.ajax({
type: "POST",
contentType: "application/x-www-form-urlencoded",
url: this.AgentServiceUrl + "/" + methodName,
data: data,
async: this.Async,
success: function (xml, textStatus) { if (successHandler != null) successHandler(state, $.xml2json(xml), textStatus); },
error: function (xmlHttpRequest, textStatus, errorThrown) { if (errorHandler != null) errorHandler(state, xmlHttpRequest, textStatus, errorThrown); }
});
我想在此请求标头中添加一个变量,并在C#,
上使用它我尝试了很多方法,但我不能在C#上使用它:
beforeSend: function (req)
{
req.setRequestHeader("AgentGUID", this.AgentGUID);
},
通过parameters:
(System.Web.HttpContext.Current.Request.Headers["someHeader"]
答案 0 :(得分:4)
您的beforeSend
应该可以正常工作,但是您在服务器端无法获得价值的原因是此方法调用this.AgentGUID
为undefined
,因为this
在该上下文中指向另一个对象(最可能是ajax请求对象)。
通过在ajax调用之外定义变量,您的问题将得到解决。
var me = this;
var response = $.ajax({
...
beforeSend: function (req)
{
req.setRequestHeader("AgentGUID", me.AgentGUID);
},
...
});