3

次のリクエストがあります。

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# では使用できません:

  1.  beforeSend: function (req)  
     {  
         req.setRequestHeader("AgentGUID", this.AgentGUID);  
     },
    
  2. 合格parameters:

手伝って頂けますか?C# の部分で関数を変更したくありません。次のようなものを使用したいだけです。

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

1 に答える 1

4

あなたbeforeSendが望むように動作するはずですが、サーバー側で値を取得していない理由は、this.AgentGUIDこのメソッド呼び出しで、そのコンテキストで別のオブジェクト (おそらく ajax 要求オブジェクト) を指しているundefinedためです。this

ajax 呼び出しの外側で変数を定義することで、問題が修正されます。

var me = this;
var response = $.ajax({
    ...
    beforeSend: function (req)
    {
        req.setRequestHeader("AgentGUID", me.AgentGUID);
    },
    ...
});
于 2012-07-01T12:12:27.540 に答える