我试图创建一个AJAX请求。下面是我的函数定义:
function AJAXrequest(url, postedData, callback) {
$.ajax({
type: 'POST',
url: url,
data: postedData,
dataType: 'json',
success: callback
});
}
这里是我调用它的地方,提供参数:
AJAXrequest('voting.ajax.php', data, function(data) {
// function body
});
然而回调没有运行,相反,我得到一个console.error:
TypeError: $.ajax(...) is not a function.
Why?
对于任何试图在nodejs中运行此命令的人:它不能开箱即用,因为jquery需要浏览器(或类似的)!我只是试图让导入运行,并记录console.log($),其中写入[函数],然后也是console.log($.ajax),返回未定义。我没有tsc错误,并从intellij自动完成,所以我想知道发生了什么。
然后在某个时候,我意识到节点可能是问题,而不是typescript。我在浏览器中尝试了相同的代码,它工作了。为了让它工作,你需要运行:
require("jsdom").env("", function(err, window) {
if (err) {
console.error(err);
return;
}
var $ = require("jquery")(window);
});
(学分:https://stackoverflow.com/a/4129032/3022127)
有一个语法错误,因为你在ajax函数和另一组括号后放置括号来定义参数列表:-
如你所写:-
$.ajax() ({
type: 'POST',
url: url,
data: postedData,
dataType: 'json',
success: callback
});
括号周围的ajax必须被删除,它应该是:-
$.ajax({
type: 'POST',
url: url,
data: postedData,
dataType: 'json',
success: callback
});