当我调用Angular http get(或)帖子到我的NodeJS应用程序时,在控制台中没有错误
login(model)
{
debugger
let options = new RequestOptions({
headers: new Headers({ 'Content-Type': 'application/json;charset=UTF-8' })
});
// var AppURL='https://staging.medicscloud.com/Dev/MedicsCloud/Mobile/MobileAuthentication/Login/?practiceID='+model.prccode;
return this.http.get('http://localhost:4006/api/user/login', model)
.map((response: Response) => {
// login successful if there's a jwt token in the response
let user = response.json();
if (user && user.token) {
// store user details and jwt token in local storage to keep user logged in between page refreshes
localStorage.setItem('currentUser', JSON.stringify(user));
}
}).subscribe();
//.subscribe();
}
我的nodejs代码
router.get('/user/login/', function (req, res) {
console.log("hiiiiiiiiii "+req.body,req.query)
// common.testapi().then(function (rows) {
// if (rows) {
// res.end("");
// }
// }).fail(function (err) {
// console.error("displayreport..." + err.body);
// });
res.end("hiiiiiii");
});
答案 0 :(得分:0)
你的map
函数没有返回任何内容,我认为订阅不会那样。
试试这个:
login(model)
{
debugger
let options = new RequestOptions({
headers: new Headers({ 'Content-Type': 'application/json;charset=UTF-8' })
});
// var AppURL='https://staging.medicscloud.com/Dev/MedicsCloud/Mobile/MobileAuthentication/Login/?practiceID='+model.prccode;
return this.http.get('http://localhost:4006/api/user/login', model)
.map((response: Response) => {
// login successful if there's a jwt token in the response
let user = response.json();
if (user && user.token) {
// store user details and jwt token in local storage to keep user logged in between page refreshes
localStorage.setItem('currentUser', JSON.stringify(user));
}
return user; //<- return something
}).subscribe((response)=> console.log(response));
//.subscribe();
}
此外,您通常希望您的方法返回observable,然后您可以在任何需要的地方订阅它们。上面的代码返回一个订阅,如果您没有异步操作的经验,您会想知道为什么有些变量是undefined
。
答案 1 :(得分:0)
这必须是CORS问题。在向客户端发送响应时,请确保在服务器端设置了以下标头。 :
//您希望允许的域名 res.setHeader('Access-Control-Allow-Origin','*');
//请求您允许的方法 res.setHeader('Access-Control-Allow-Methods','GET,POST,PUT,DELETE');
//如果您需要网站在请求中包含Cookie,请设置为true res.setHeader('Access-Control-Allow-Credentials',true);