将带有正文的POST XMLHttpRequest发送到快速节点服务器

时间:2015-03-13 19:32:58

标签: node.js http post express xmlhttprequest

基本背景:

我有一个快速节点服务器运行一个非常简单的网站。该网站的第一页有两个输入(1个文本,1个数字)

<input type="text" name="xml_url" id="xml_in" placeholder="Required" />
<input type="number" min="0" name="c2" id="c2_in" placeholder="Required" />

现在非常简单,用户输入一个网址和一个数字,我的应用程序构建了一些内容并返回一个文件的链接。

我的节点服务器(基本上)如下所示:

app.post('/secondPage', function(req, res){
 var url = req.body.xml_url
   , c2 = req.body.c2;
 //some stuff happens etc...
res.render('finalpage.html', {
    foo: c2andsomething
    url: newurl
 });

我的问题/问题:

我希望能够不使用我的前端。我相信代码基本上可以工作(除了渲染,我相信我需要的东西是

res.send(aJsonResponse); // obviously I will need to build the json

我只是不知道如何伪造这个帖子请求。我在这里画一个空白。到目前为止,我只是尝试了一些声称他们会发送帖子请求等的网站。并在浏览器中尝试使用查询字符串输入我的网址,但我的应用程序不接受GET ..

希望这不是太漫无边际,但我很乐意听到一些建议。如果这个问题毫无意义,将删除。

编辑:

好吧所以我似乎总是带着这些问题跳起来。我刚在控制台试了一下:

var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "http://192.168.1.1:3000/secondPage", true);
xmlhttp.send("foobar");

我收到了一个CORS错误。我想我很快就会在这里弄明白这一点,如果你有任何建议我仍然会非常喜欢听到它们。

由于

编辑2:

所以我能够发送请求,并且没有CORS问题..但我不确定如何在请求中设置正文。

 var xmlhttp = new XMLHttpRequest();
 xmlhttp.open("POST", "http://192.168.1.1:3000/secondPage", true);
 xmlhttp.send({"xml_in":"I-thought-this-was-the-body"});

但是req.body是{}

1 个答案:

答案 0 :(得分:0)

我使用cURL解决了我的问题,所以不是最好的答案,但这里是我使用的

curl -d "xml_in=http://google.com&c2=12345" http://192.168.1.1:3000/secondPage