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

标签 c# ajax header

我有以下要求:

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

我想向此请求 header 添加一个变量并在 C# 上使用它,

我尝试了很多方法,但我无法在 C# 上使用它:

  1.  beforeSend: function (req)  
     {  
         req.setRequestHeader("AgentGUID", this.AgentGUID);  
     },
    
  2. 传递参数:

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

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

最佳答案

您的 beforeSend 应该如您所愿地工作,但是您没有在服务器端获得值的原因是此方法调用中的 this.AgentGUID undefined 因为 this 在该上下文中指向另一个对象(很可能是 ajax 请求对象)。

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

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

关于c# - 如何使用 header 请求将参数从 Ajax 传递到 C#?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11281810/

相关文章:

c# - 通用类中的静态列表

PHP MySQL : Redirecting Users ERROR

c++ - 在头文件中使用一个类作为另一个类中的值类型

c#如何正确格式化ffmpeg用户输入流?

java - 如何在 C# Selenium WebDriver 中等待登录 cookie?

c# - 如何防止'字符被输入到文本框中?

javascript - 使用 Ajax 获取 XML 文件

javascript - 所有 jquery 验证规则都正常工作(在 keyup 上工作)但仅在提交按钮上单击后才确认密码验证工作

javascript - 强制重新触发 ajaxed 内容上的所有(脚本/函数)

php - laravel 4:为什么 Request::header() 没有得到指定的 header ?