微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用头请求将参数从Ajax传递到C#?

我有以下要求:

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);  
 },

>传递参数:

你能帮助我吗?我不想更改C#部分的功能,我只想使用类似以下内容的东西:

(System.Web.HttpContext.Current.Request.Headers["someHeader"]

解决方法:

您的beforeSend应该可以按您希望的那样工作,但是未在服务器端获取值的原因是未定义此方法调用上的this.AgentGUID,因为在该上下文中此对象指向另一个对象(很可能是ajax请求对象).

通过在ajax调用之外定义变量,您的问题将得到解决.

var me = this;
var response = $.ajax({
    ...
    beforeSend: function (req)
    {
        req.setRequestHeader("AgentGUID", me.AgentGUID);
    },
    ...
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐