2017-05-08 137 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) { 

})