Javascript 为什么node.js的jQuery包中没有$.ajax方法?
我的代码是这样的,我想练习jQuery的ajax功能(我已经运行了Javascript 为什么node.js的jQuery包中没有$.ajax方法?,javascript,jquery,ajax,node.js,Javascript,Jquery,Ajax,Node.js,我的代码是这样的,我想练习jQuery的ajax功能(我已经运行了npm install jQuery来安装这个包): 但是NodeJS编译器抱怨jQuery模块中没有ajax方法 bash-3.2$ node test.js /Users/hanfeisun/Downloads/node/test.js:14 var promise = $.ajax({ ^ TypeError: Object function ( w ) {
npm install jQuery
来安装这个包):
但是NodeJS编译器抱怨jQuery模块中没有ajax
方法
bash-3.2$ node test.js
/Users/hanfeisun/Downloads/node/test.js:14
var promise = $.ajax({
^
TypeError: Object function ( w ) {
if ( !w.document ) {
throw new Error( "jQuery requires a window with a document" );
}
return factory( w );
} has no method 'ajax'
at Object.<anonymous> (/Users/hanfeisun/Downloads/node/test.js:14:17)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3
bash-3.2$node test.js
/Users/hanfeison/Downloads/node/test.js:14
var promise=$.ajax({
^
类型错误:对象函数(w){
如果(!w.document){
抛出新错误(“jQuery需要一个包含文档的窗口”);
}
返回工厂(w);
}没有“ajax”方法
在对象上。(/Users/hanfeison/Downloads/node/test.js:14:17)
在模块处编译(Module.js:456:26)
在Object.Module.\u extensions..js(Module.js:474:10)
在Module.load(Module.js:356:32)
在Function.Module.\u加载(Module.js:312:12)
位于Function.Module.runMain(Module.js:497:10)
启动时(node.js:119:16)
在node.js:906:3
jQuery for Browser JS编译器和NodeJS的javascript代码不应该相同吗
如果没有,有人知道主要原因吗?谢谢!Node.js的Javascript(服务器端)与通常的客户端Javascript有点不同。它是一种Javascript,但具有不同的上下文环境
jQuery应该只帮助客户端javascript。有关更多信息,请尝试以下链接
我不太熟悉Node的javascript环境,但ajax的要点是使用javascript处理服务器响应,而不会导致页面刷新。在运行Node的服务器上,您只需发出一个正常的HTTP请求即可 事实上,快速的google搜索表明JQuery使用$.ajax构建的底层XMLHttpQuest在Node中不存在(事实上,它是浏览器对象模型的一部分),因此它在Node中不可用(尽管您可能可以通过利用Node的http请求模块来模拟它)
如果您想尝试使用$.ajax,您应该在浏览器环境中进行。您可以从包含JQuery的任何网页(如Stackoverflow)的javascript控制台中进行此操作,或者在标题中使用脚本标记制作您自己的测试HTML页,该脚本标记从CDN生成JQuery。因为错误表明您需要一个窗口对象才能工作使用jquery。 您将需要JSDOM来使用Jquery方法
const { JSDOM } = require( "jsdom" );
const { window } = new JSDOM( "" );
const $ = require( "jquery" )( window ); // or const jquery = require( "jquery" )( window );
它不是一种
不同的语言
。它是JavaScript。碰巧大多数人熟悉的DOM API和网络API只存在于浏览器中,而节点的API只存在于节点中。jQuery可以在DOM API和XMLHttpRequest可用的任何地方运行。
const { JSDOM } = require( "jsdom" );
const { window } = new JSDOM( "" );
const $ = require( "jquery" )( window ); // or const jquery = require( "jquery" )( window );