【问题标题】:How to "get" from NodeJS with AngularJS如何使用 AngularJS 从 NodeJS 中“获取”
【发布时间】:2016-05-02 20:42:45
【问题描述】:

我启动了一个 AngularJs 应用程序并从数据库中检索一些数据,我正在使用 NodeJS(对我来说是全新的),在 NodeJS 的控制台上它可以工作,并且还可以直接在浏览器中输入 URL,但是当我尝试获取在 AngularJS 中使用 http.get() 所需的信息在浏览器中使用相同的 URL 我得到 404 未找到。 我认为这将是一个 cors 问题,所以我添加了

require('cors') in the nodeJS app and still doesn't work

谁能帮我解决这个问题? 我是否应该在前端为 Angularjs 和在后端为 NodeJS 制作单独的应用程序,还是应该只在一个应用程序中组装它们?

感谢您的帮助

这是 AngularJS 代码:

$scope.keyLoad = function () {
    $http.get("localhost:8080/product")
         .success(function (response) {
             $scope.keys = response;
             console.log(response)
         })
};
$scope.keyLoad();

【问题讨论】:

  • 你的代码是...?
  • 除非您的 url 是相对的,否则您应该指定包含协议的 full url。试试$http.get("http://localhost:8080/product")
  • 阅读this,为什么.then(...).success(...)更受欢迎
  • @Claies — CORS 与 403 错误无关。当服务器拒绝向客户端提供数据时,您会得到这些,因为客户端没有经过身份验证。 CORS 用于绕过同源策略,即 浏览器 拒绝从一个试图从另一个站点读取数据的站点访问 JavaScript。

标签: javascript angularjs node.js


【解决方案1】:

我得到 404 未找到。我认为这将是一个 cors 问题

如果它说是 404 错误,那么它是 404 错误,而不是 CORS 问题。

看看你的代码:

$http.get("localhost:8080/product")

该 URL 缺少方案。它是一个相对 URL。

您将请求http://example.com/myapp/localhost:8080/product 之类的内容。

http://https://放在前面。

【讨论】:

    【解决方案2】:

    您应该使用$http 服务。

    例如:

    $http({
      method: 'GET',
      url: '/someUrl'
    }).then(function successCallback(response) {
        // this callback will be called asynchronously
        // when the response is available
    }, function errorCallback(response) {
        // called asynchronously if an error occurs
        // or server returns response with an error status.
    });
    

    或者

    $http.get('/someUrl', config).then(successCallback, errorCallback);
    

    【讨论】:

    • 是的,你是对的,现在它打印在控制台但不能在其他地方使用 $scope.keys
    • 在别的地方是什么意思?
    • 我正在尝试使用结果来绘制图表: var chart = c3.generate({ bindto: '#chart', data: { columns: [ ['Homme', $scope.键], ['Femme', 88] ] } });
    • 但 $scope.keys 无法识别,因为它给了我一个错误:缺少组件
    • 这段代码在哪里?他们指的是同一个$scope吗?
    猜你喜欢
    • 2016-06-01
    • 1970-01-01
    • 2011-08-23
    • 2019-07-17
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    相关资源
    最近更新 更多