Angular http get(或)帖子不使用nodejs

时间:2017-05-12 10:28:21

标签: node.js angular

当我调用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");

});

2 个答案:

答案 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);