Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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 使用XMLHttpRequest打开的自定义头时,Jquery.get函数被无限次调用_Javascript_Jquery_Ajax_Xmlhttprequest - Fatal编程技术网

Javascript 使用XMLHttpRequest打开的自定义头时,Jquery.get函数被无限次调用

Javascript 使用XMLHttpRequest打开的自定义头时,Jquery.get函数被无限次调用,javascript,jquery,ajax,xmlhttprequest,Javascript,Jquery,Ajax,Xmlhttprequest,我为每个XMLHttpRequest使用了自定义头,如下所示: XMLHttpRequest.prototype.newOpen = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function(method, url) { var customValue = 'custom_value'; this.newOpen.apply(this, arguments); this.setRequ

我为每个XMLHttpRequest使用了自定义头,如下所示:

XMLHttpRequest.prototype.newOpen = XMLHttpRequest.prototype.open;

XMLHttpRequest.prototype.open = function(method, url) {
    var customValue = 'custom_value';
    this.newOpen.apply(this, arguments);
    this.setRequestHeader('X-Custom-Headers', customValue);
};
$(function(){
    var file = "location/somefile.csv";

    $.get(file, { "_": $.now() }, function(vals) {
        var csv_arr = $.csv.toArrays(vals);
        console.log(csv_arr);
    }).done(function() {
        alert("SUCCESS");
    }).error(function(err) {
        alert(err.statusText);
    });
})
在调用之后,Jquery的Get函数如下所示:

XMLHttpRequest.prototype.newOpen = XMLHttpRequest.prototype.open;

XMLHttpRequest.prototype.open = function(method, url) {
    var customValue = 'custom_value';
    this.newOpen.apply(this, arguments);
    this.setRequestHeader('X-Custom-Headers', customValue);
};
$(function(){
    var file = "location/somefile.csv";

    $.get(file, { "_": $.now() }, function(vals) {
        var csv_arr = $.csv.toArrays(vals);
        console.log(csv_arr);
    }).done(function() {
        alert("SUCCESS");
    }).error(function(err) {
        alert(err.statusText);
    });
})
但是这个$.get函数被无限次调用。当我删除所有请求的自定义头时,它就会工作。 我总是收到超过最大呼叫大小的错误。 在
XMLHttpRequest
中设置自定义头时是否出错? 或者,是什么导致我的
$.get()
请求被无限次调用?
请提供帮助。

我已经有一段时间没有使用JQuery了,但这取决于您希望在何处使用所有代码形式,例如,单击按钮或更改选择选项等。请尝试将您的代码放入名称a函数中,如:

var csvHelper =
{
   readCsv: function() {
       var file = "location/somefile.csv";

        $.get(file, { "_": $.now() }, function(vals) {
         var csv_arr = $.csv.toArrays(vals);
         console.log(csv_arr);
       }).done(function() {
            alert("SUCCESS");
       }).error(function(err) {
    alert(err.statusText);
       });
   }
}
然后通过单击按钮或页面加载调用它,如:

csvHelper.readCsv();

JSFiddle示例:

您的代码是什么?例如,点击按钮、页面加载等是否会调用它?@loan.burger页面加载时会调用它。如您所见,在$(function()中调用了$.get()