Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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 如何在node.js中使用$.ajax而不打开浏览器_Javascript_Jquery_Browser_Cmd - Fatal编程技术网

Javascript 如何在node.js中使用$.ajax而不打开浏览器

Javascript 如何在node.js中使用$.ajax而不打开浏览器,javascript,jquery,browser,cmd,Javascript,Jquery,Browser,Cmd,首先,我对node.js有点陌生。我想使用这段代码(它在浏览器中工作)$.ajax('/postmessage'{method:“POST”,data:{message:'foo',username:'bar'}),而不打开浏览器,让它在我做任何其他事情时运行。 有可能吗?还是有更好的办法 谢谢 编辑:我尝试使用axios: const axios=require('axios'); const instance=axios.create({baseURL:'sitehere'}); post(

首先,我对node.js有点陌生。我想使用这段代码(它在浏览器中工作)
$.ajax('/postmessage'{method:“POST”,data:{message:'foo',username:'bar'})
,而不打开浏览器,让它在我做任何其他事情时运行。 有可能吗?还是有更好的办法

谢谢

编辑:我尝试使用axios:
const axios=require('axios');
const instance=axios.create({baseURL:'sitehere'});
post('/postmessage',{message:'foo',username:'bar'}) .那么( 函数(响应){console.log(响应);} .接住( 函数(错误){console.log(错误);})

我收到错误403,我的消息未发送。

请参阅:

默认情况下,axios将JavaScript对象序列化为JSON 在application/x-www-form-urlencoded格式中,您可以使用 以下选项之一

在node.js中,您可以使用querystring模块,如下所示:

var querystring = require('querystring');
axios.post('http://something.com/', querystring.stringify({ foo: 'bar' }));
const axios = require('axios'); 
const querystring = require("querystring");
const instance = axios.create({ baseURL: 'sitehere' });

instance.post('/postmessage', querystring.stringify({ message: 'foo', username: 'bar'}))
.then(
      function (response) { console.log(response); })
.catch(
      function (error) { console.log(error); })
您也可以使用qs库


你就快到了。有一个警告。如下:

$.ajax('/postmessage'{method: "POST",data:{message: 'foo', username: 'bar'})
POST /postMessage HTTP/1.1
Content-Type: application/json

{"message":"foo", "username":"bar"}
发送此HTTP请求:

POST /postMessage HTTP/1.1
Content-Type: application/x-www-form-urlencoded

message=foo&username=bar
您使用axios将发送以下信息:

$.ajax('/postmessage'{method: "POST",data:{message: 'foo', username: 'bar'})
POST /postMessage HTTP/1.1
Content-Type: application/json

{"message":"foo", "username":"bar"}
这已在中指出,并且是一个深思熟虑的选择,因为axios的主要用例之一是REST API的消费

node.js有一个内置的
querystring
模块,允许您将字符串作为POST请求的正文内容提供给axios,如下所示:

var querystring = require('querystring');
axios.post('http://something.com/', querystring.stringify({ foo: 'bar' }));
const axios = require('axios'); 
const querystring = require("querystring");
const instance = axios.create({ baseURL: 'sitehere' });

instance.post('/postmessage', querystring.stringify({ message: 'foo', username: 'bar'}))
.then(
      function (response) { console.log(response); })
.catch(
      function (error) { console.log(error); })

您通常不会将jQuery与Node.js一起使用,因此您不会使用
$.ajax()
。您通常会使用类似于或的内容进行web请求