2013-02-25 13 views
2

我想改變AJAX頭與$.ajaxPrefilter和嘗試以下操作:

$.ajaxPrefilter(function (options, originalOptions, jqXHR) { 
    delete options.headers["myOwnHeader1"]; 
    options.headers["myOwnHeader2"] = "test"; 
}); 

在網絡控制檯(瀏覽器)的myOwnHeader2設置和myOwnHeader1不。但它拋出以下異常:Uncaught TypeError: Cannot convert null to objectoptions.headers["myOwnHeader2"] = "test";

回答

1

options對象不一定包含headers屬性 - 只有在全球$.ajaxSettings或電流(原件)選項中給出。所以,你的選擇是使用$.ajaxSetup({headers: {}});,在if ("headers" in options)

  • 創建頭在前置動態對象,如果不存在,它可能與myOwnHeader2已經設置
  • 包裹你的刪除/擴展操作

    options.headers = options.headers || {}; 
    delete options.headers["myOwnHeader1"]; 
    options.headers["myOwnHeader2"] = "test"; 
    
  • 相關問題