簡體   English   中英

$ http不起作用,但是請求在平均堆棧Web應用程序中起作用

[英]$http is not working, but request is working in mean stack web app

我有一個控制器(login.controller.js):

var express = require('express');
var router = express.Router();
var request = require('request');
var config = require('config.json');

router.get('/', function (req, res) {
// log vendor out
delete req.session.token;

// move success message into local variable so it only appears once (single read)
var viewData = { success: req.session.success };
delete req.session.success;

res.render('login', viewData);
});

router.post('/', function (req, res) {
// authenticate using api to maintain clean separation between layers
request.post({
    url: config.apiUrl + '/vendors/authenticate',
    form: req.body,
    json: true
}, function (error, response, body) {
    if (error) {
        return res.render('login', { error: 'An error occurred' });
    }

    if (!body.token) {
        return res.render('login', { error: body, vendorname: req.body.vendorname });
    }

    // save JWT token in the session to make it available to the angular app
    req.session.token = body.token;

    // redirect to returnUrl
    var returnUrl = req.query.returnUrl && decodeURIComponent(req.query.returnUrl) || '/';
    res.redirect(returnUrl);
});
});

module.exports = router;

var請求在哪里訪問遠程REST Api。 我在哪里有一個服務(vendor.service.js),其中沒有請求$ http。 但是$ http不起作用:

(function () {
'use strict';

angular
.module('app')
.factory('VendorService', Service);




function Service($http, $q) {
var service = {};
//Store
service.GetCurrent = GetCurrent;//st_details
return service;

function GetCurrent() {
    return $http('http://localhost:3000/api/vendors/st_details').then(handleSuccess, handleError);
}
function handleSuccess(res) {
    alert('hi3');
    alert(res.data);
    return res.data;
}

function handleError(res) {
    alert('hi2');
    alert(JSON.stringify(res));
    return $q.reject(res.data);
}
}

})();

我可以使用“ var request = require('request');”嗎? 在這個vendor.service.js中,如果是,怎么辦? 預先感謝一百萬!

似乎您沒有使用CORS,需要使用它才能使應用程序通過$ http.get訪問您的API。

按照https://www.npmjs.com/package/cors上的說明將CORS添加到您的快速應用程序中,它應該可以工作。

暫無
暫無

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

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