Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.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
Node.js 对另一台服务器的代理Post请求失败_Node.js_Proxy - Fatal编程技术网

Node.js 对另一台服务器的代理Post请求失败

Node.js 对另一台服务器的代理Post请求失败,node.js,proxy,Node.js,Proxy,我是node.js的新手。我需要从node.js将POST请求(带有有效负载)代理到另一台服务器,并将其响应处理回浏览器客户端 我的场景(browser node.js最终目标服务器) 在我解释我的问题之前,我的代码就是这样的。 我不断收到“500内部服务器错误”“错误无响应” 我强烈怀疑(虽然不确定!),这个错误的原因是我的负载从初始请求没有被复制到代理请求,并且我的最终服务器期望的完整url不在那里 有人能告诉我,如何将url和负载复制到转发请求中? 另外,我如何处理来自转发服务器的响应?

我是node.js的新手。我需要从node.js将POST请求(带有有效负载)代理到另一台服务器,并将其响应处理回浏览器客户端

我的场景(browser node.js最终目标服务器)

在我解释我的问题之前,我的代码就是这样的。
我不断收到“500内部服务器错误”“错误无响应”

我强烈怀疑(虽然不确定!),这个错误的原因是我的负载从初始请求没有被复制到代理请求,并且我的最终服务器期望的完整url不在那里

有人能告诉我,如何将url和负载复制到转发请求中? 另外,我如何处理来自转发服务器的响应? 我的负载是一个xml对象,最终的url是

http://ipaddress:port/XISOAPAdapter/MessageServlet?senderParty=&senderService=BS_WSAPPS_Q&receiverParty=&receiverService=&interface=SI_OrderStatusRequest_Out&interfaceNamespace=http://xyz/IF027/EC/OrderStatus/I_WS_APPS
@Krzysztof Sztompka

这是你要我提供的信息。miine是一个开发环境

_http_outgoing.js:512 抛出新的TypeError('第一个参数必须是字符串或缓冲区'); ^ TypeError:第一个参数必须是字符串或缓冲区 在ServerResponse.OutgoingMessage.end(_http_outgoing.js:512:11) 在请求时。\u回调(D:\MyNode.js\serverproxy.js:18:43) 在self.callback(D:\MyNode.js\node\u modules\request\request.js:198:22) at Request.emit(events.js:107:17) at Request.onRequestError(D:\MyNode.js\node\u modules\Request\Request.js:867:8) 在ClientRequest.emit(events.js:107:17) 在Socket.socketOnEnd(_http_client.js:300:9) 在Socket.emit(events.js:129:20) at_stream_readable.js:908:16
在进程中。_tickCallback(node.js:355:11)

将此更改为:
if(err){return res.status(500.end('Error no response');}
将此更改为:
if(err){return res.status(500.end(err);}
,当您出现错误时,将有更多详细信息。编辑问题并粘贴它。如果是生产服务器,则按如下方式进行更改:
If(err){console.log(err);返回res.status(500).end('Error no response');}
并且错误将在Terminal中,如果可以解决它,则返回res.status(500).end('Error no response');}。问题在请求声明中。这是正确的请求代码,我用DI可以解决它。问题出现在请求语句和身份验证中;请求({url:,//包含端点的完整url。方法:“POST”,标题:{“内容类型”:“text/xml”,“Authorization”:auth//请参阅上面的var声明。},正文:soapMessage//保存xml消息的变量。},函数(err,remoteResponse,remotebody){console.log(remoteResponse);if(err){返回res.status(500).end(“error”);}res.writeHead(200);res.end(remotebody);});
http://ipaddress:port/XISOAPAdapter/MessageServlet?senderParty=&senderService=BS_WSAPPS_Q&receiverParty=&receiverService=&interface=SI_OrderStatusRequest_Out&interfaceNamespace=http://xyz/IF027/EC/OrderStatus/I_WS_APPS