我在nodejs实例中有代码,它接收post请求(成功),并且还显示通过json发送的参数(我需要在服务器端使用body-parser)。一旦收到post请求,我立即执行return“testing”;
以检查值是否成功返回。但是,我的angular2回调(如图所示)不会激发或显示任何日志。知道为什么吗?
var to_send = JSON.stringify({"test": argument});
var headers = new Headers();
headers.append('Content-Type', 'application/json');
this.http
.post('http://localhost:8080/',
to_send, {
headers: headers
})
.map((res) => res.json() )
.subscribe(
(response) => { console.log("Success Response" + response)},
(error) => { console.log("Error happened" + error)},
() => { this.parseResponse(res); }
);
函数parseResponse只是console.logs(“返回的东西”);
下面是我的代码现在的情况,仍然失败(没有触发parseResponse内部的日志):
var to_send = JSON.stringify({"test": argument});
var headers = new Headers();
headers.append('Content-Type', 'application/json');
this.http
.post('http://localhost:8080/',
to_send, {
headers: headers
})
.map((res) => res.json() )
.subscribe(
(response) => { console.log("Success Response",response)},
(error) => { console.log("Error happened",error)},
() => { this.parseResponse(res); }
);
在我的服务器中,我将返回以下内容:
var to_return = {};
to_return["message"] = "success";
return to_return;
然而,它根本不起作用。知道为什么吗?parseresponse
是一个简单的日志“收到的反馈”。。。
我怀疑你的服务器代码。您是否验证了服务器是否真的发送了任何响应。而且它真的到达了你的客户端?
return to_return;
您还没有确切地提到您的服务器代码正在运行的位置。这个文档清楚地说明了核心HTTP模块已经创建的响应对象,并且它总是将它与请求对象一起传递。所以理想情况下,您只需使用响应对象。并像send一样调用它的API。
但您根本没有显示任何使用response对象的代码。
尝试以下操作,self.parseresponse(res);
:
...
let self = this;
this.http
.post('http://localhost:8080/',
to_send, {
headers: headers
})
.map((res) => res.json() )
.subscribe(
(response) => { console.log("Success Response",response)},
(error) => { console.log("Error happened",error)},
() => { self.parseResponse(res); }
);
你知道吗
this.http...
.map((res) => res.json() )
通过此操作,您可以将响应转换为JSON
,因为它不是JSON
,所以它将失败。您可以使用text()
方法来获取字符串:
.map((res) => res.text())
也可以从后端返回一个对象:
return {result: "testing"}
和读取subscribe
内的字段result
更新:
您可以在map
方法中输出res
,查看它真正包含的内容:
.map((res) => {
console.log(res);
return res.json();
})
还有一件事:调用this.parseresponse(res)
;res
在此作用域中不存在。它将是parseresponse
内部的undefined
问题内容: 我有一个函数,用关键字声明一个变量。然后,它将启动AJAX请求以设置变量的值,然后从函数中返回此变量。 但是,我的实现失败了,我也不知道为什么。 这是代码的简化版本; 问题答案: AJAX请求是异步的。您的sendRuest函数正在执行,正在发出AJAX请求,但它是异步发生的;因此,sendRuest的其余部分在AJAX请求(和onreadystatechange处理程序)执行之前就已
我想在Android Studio中获取isSeen节点的值。M6F2mJjQ8uGPXAynZzV是消息的id,并将消息更改为消息。我想在适配器类中获得这个值。
问题内容: 我正在一个项目中,用户对我们的代客服务的请求在另一端代客接受请求。 我正在使用Firebase作为后端,并应要求将客户uid保存在“ request”子项上。 当代客接受请求时,客户uid应从“请求”节点移至“进行中”节点。 我怎样才能做到这一点? 问题答案: 我建议使用这个: 这来自以下来源:https : //gist.github.com/katowulf/6099042。我在J
当检查链表中的中间节点时,我对同时循环条件在链表中的工作方式感到困惑 这是正确的代码我有找到中间节点的链表 如果我将while循环更改为 或 我收到一个错误,上面写着 我只是想知道为什么拥有第二个代码和second.next代码很重要
我有NGINX作为反向代理运行,它将所有超文本传输协议和https流量转发到我的node.js应用程序,该应用程序监听localhost: port 然而,我的问题是节点。js应用程序将所有传入请求视为来自::ffff:127.0。0.1 如何更改NGINX配置,使真正的IP能够通过并转发到节点。js应用程序? 编辑:快车。js/node。js应用程序处理请求。ip和应用程序。启用(“信任代理”)
这里是初学者。因此,对于我的类我在CSS中将顺序设置为-1,使其成为顶部的div。它正确地删除了类,但我假设前一个active的顺序仍然是-1 基本上我有:div1 div2 div3 div4 div5,如果用户点击其中一个,结果应该是div4 div1 div2 div3 div5 再次单击应该得到div2 div1 div3 div4 div5,但我得到的是div4 div2 div1 di
所以我想在10x10坐标系中转换不同支点之间的三个点 想象我想要什么: 这是我的第一个坐标系 翻译成: 现在,这些点必须保持在不同系统之间的同一点上,因此只有这些点的坐标应该更改。首先,我想我应该把之前的原点添加到转换后的坐标中,这对A和B是有效的,但C是不同的,也许我使用了一个错误的公式或其他东西 请你帮帮我
我在循环中的节点JS中发送这样的GET请求 由于响应是异步的,是否可以在响应中获取原始请求URL? 谢谢!