繁体   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