2017-05-08 138 views
1

我尝试使用承诺请求和编写代码:请求pormise - POST请求不好服务器端口

var pr = require('promise-request'); 

var options = { 
    method: 'POST', 
    uri: 'http://localhost:4000/user/login', 
    port: 4000, 
    form: { 
    login: 'login', 
    password: 'password' 
    }, 
    json: true 
}; 
pr(options) 
    .then(function(res) { 
    console.log(res); 
    }) 
    .catch(function(err) { 
    console.log(err); 
    }); 

如果不使用端口选项我得到了错误:

Error: connect ECONNREFUSED 127.0.0.1:80 

如果我添加端口选项错误消失,但在官方文档中不写你可以设置这个选项。它的工作原因是我设置了端口uri。我有错误,我无法从服务器获取数据。我唯一的错误:

undefined:1 
<!DOCTYPE html> 
^ 

SyntaxError: Unexpected token < in JSON at position 0 

我做同样的要求与HTTP模块,所有的作品好,也许我需要使用另一个模块?

+0

你确定你有工作服务器127.0.0.1:80,你已经向你提出了要求?要在80端口上运行服务器,您必须具有sudo权限。对于第二个错误消息,您需要删除(仅用于调试目的)'json:true'并查看您得到的具体错误。 – styopdev

+0

我在localhost:4000上运行服务器,并且不使用端口80 –

回答

0

使用axiosrequest代替promise-request

代码如下所示:

1.

axios.post('/user/login', { 
    login: 'login', 
    password: 'password' 
}) 
.then(function(response) { 
    console.log(response); 
}) 
.catch(function(error) { 
    console.log(error); 
}); 

2.

request.post({ 
    url: '/user/login', 
    form: { 
    login: 'login', 
    password: 'password' 
    } 
}, function(err, httpResponse, body) { 

})