我正在开发一个简单的不和谐机器人。node.js 是从免费的 Heroku dyno 运行的,我在另一台服务器上有一些 php 服务器代码(数据库内容)。node.js 代码处理不和谐消息,然后将 http 请求发送到其他服务器。这已经工作了几个月,直到最近 HTTP POST 获得了 307 状态代码。当我从 Postman 或 Fiddle 发出命令时,没有问题。但是,从测功机发送的第一个 POST 请求总是返回 307。所有后续请求都可以正常工作。响应标头位置与删除主机后的位置相同。因此,发送 POST 请求http://host.com/example/example.php
将返回一个 307,其标头位置为/example/example.php
. 同样,仅在启动测功机后的第一次尝试时。
截断的 node.js 代码
var request = require('request');
var options = {
'method': 'POST',
'url': 'http://......',
'headers': {
},
formData: {
'initiateDraft': 'true',
'pwd': .....,
'entries': usernames.toString(),
'entriesUIDs': uids.toString()
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
try{
console.error('error:', error); // Print the error if one occurred
console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
console.log('body:', response.body); // Print body
更新,我能够在使用 Postman 的 400 次尝试中重现该问题。所以问题出在服务器端,但是我看不到原因。我正在使用 godaddy 共享主机,没有会导致重定向的 .htaccess 文件。真的很苦恼为什么它在 Postman 上如此断断续续,但始终在 Heroku 的第一个 POST 请求上重定向。