Javascript 使用XMLHttpRequest打开的自定义头时,Jquery.get函数被无限次调用
我为每个XMLHttpRequest使用了自定义头,如下所示: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.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()