Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $.ajaxPrefilter引发未捕获的TypeError:无法将null转换为对象异常_Javascript_Jquery_Ajax_Javascript Objects - Fatal编程技术网

Javascript $.ajaxPrefilter引发未捕获的TypeError:无法将null转换为对象异常

Javascript $.ajaxPrefilter引发未捕获的TypeError:无法将null转换为对象异常,javascript,jquery,ajax,javascript-objects,Javascript,Jquery,Ajax,Javascript Objects,我想用$.ajaxPrefilter更改AJAX标头,并尝试了以下操作: $.ajaxPrefilter(function (options, originalOptions, jqXHR) { delete options.headers["myOwnHeader1"]; options.headers["myOwnHeader2"] = "test"; }); 在网络控制台(Chrome)中,设置了myOwnHeader2,而未设置myOwnHeader1。但它抛出以下异常

我想用
$.ajaxPrefilter
更改AJAX标头,并尝试了以下操作:

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

在网络控制台(Chrome)中,设置了
myOwnHeader2
,而未设置
myOwnHeader1
。但它抛出以下异常:
uncaughttypeerror:cannotvernull-to-object
on
options.headers[“myOwnHeader2”]=“test”

仅当在全局
$.ajaxSettings
或当前(原始)选项中给定时,
选项
对象不一定包含
标题
属性。所以你的选择是

  • 使用
    $.ajaxSetup({headers:{}}),可能已经设置了
    myOwnHeader2
  • 将删除/扩展操作包装在
    if(“选项中的标题”)块中
  • 在预过滤器中动态创建headers对象(如果不存在):

options.headers = options.headers || {};
delete options.headers["myOwnHeader1"];
options.headers["myOwnHeader2"] = "test";