簡體   English   中英

Angular HTTP get(or)發布不適用於nodejs

[英]Angular http get(or) post not working with nodejs

當我在我的NodeJS應用程序中調用Angular http get(或)post時無法正常工作在控制台中沒有錯誤

 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");

});

您的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();
    }

同樣,您通常希望您的方法返回可觀測值,然后在需要它們的地方訂閱它們。 上面的代碼返回一個訂閱,如果您不熟悉異步操作,您會想知道為什么undefined某些變量。

這必須是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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM