我在使用JavaScript时遇到了一个奇怪的错误。
我的项目中有一个文件add_account.js,当我的AJAX函数在函数内部时,它会抛出JQuery错误。
当我使用像猎犬和打字头这样的组件时会出现同样的问题。
顺便说一句,它甚至不会抛出AjaxSetup设置的错误。它停止并且没有警报。
错误: TypeError:e未定义 setRequestHeader:功能(E,T) {var n = e.toLowerCase(); return x ||(e = v [n] = v [n] ... jquery -.... min.js(第5行,第11629行)
var testAjaxRun = function(){
$.ajaxSetup({
error: function(jqXHR, exception) {
if (jqXHR.status === 0) {
alert('Not connect.\n Verify Network.');
} else if (jqXHR.status == 404) {
alert('Requested page not found. [404]');
} else if (jqXHR.status == 500) {
alert('Internal Server Error [500].');
} else if (exception === 'parsererror') {
alert('Requested JSON parse failed.');
} else if (exception === 'timeout') {
alert('Time out error.');
} else if (exception === 'abort') {
alert('Ajax request aborted.');
} else {
alert('Uncaught Error.\n' + jqXHR.responseText);
}
}
});
$.ajax({
type: "GET",
dataType: "json",
url: "../controllers/fde.php",
success: function(data) {
alert('success');
return data;
}
});
//...
}
// outside function and in the end of file
$(document).ready(function() {
testAjaxRun();
});
如果我将AJAX指令移除到外部函数,它可以正常工作。
错误: TypeError:e未定义 setRequestHeader:功能(E,T) {var n = e.toLowerCase(); return x ||(e = v [n] = v [n] ... jquery -.... min.js(第5行,第11629行)
知道这个问题吗?脚本中的所有其余内容都完美无缺。
这是我从Java迁移到PHP的项目。 Java项目中的javascript文件也能正常工作。
答案 0 :(得分:0)
民间,
我发现了问题。实际上javascript没有任何问题。
问题是该项目有另一个file.js有这个指令搞砸了我的ajax调用。
然后我评论了_jquery.init并且一切正常。两个晚上没有睡觉和测试所有其他事情我得到了错误。 :)
_jquery.init()
_jquery = {
init: function () {
$(document).ajaxSend(function (e, xhr, options) {
xhr.setRequestHeader(sync.csrfHeader, sync.csrf);
});
} };
Java项目可能正在处理这个领域,但我现在还不需要它。