使用 Angular 的 $http 服务调用 js 文件?

Posted

技术标签:

【中文标题】使用 Angular 的 $http 服务调用 js 文件?【英文标题】:Using angular's $http service to call a js file? 【发布时间】:2015-02-17 08:47:04 【问题描述】:

我正在使用带节点的角度并尝试连接到 mysql 数据库。

我在此脚本 (server.js) 中使用节点 mysql 模块:

var  mysql=require('mysql');

var connection = mysql.createConnection(
        
            host         : 'localhost',
            user         : 'root',
            password : '',
            database : 'mysql',
        
);

connection.connect();

var queryString = 'SELECT * FROM users';

connection.query(queryString, function(err, rows, fields) 
    if (err) throw err;

    for (var i in rows) 
        console.log('Post Titles: ', rows[i].post_title);
    
);

connection.end();

我想用这样的角度运行 js 脚本:

var myApp = angular.module('myApp', []);

myApp.controller('AppListCtrl', ['$scope', '$http',
    function($scope, $http) 
        $http.get('../scripts/server.js').success(function(data) 
            console.dir(data);
        );
    

这不起作用(js文件实际上并没有执行)。我必须将我的 js 包装在 html 中吗?我会以错误的方式解决这个问题吗?我想用js来做这一切,而不用在这里使用php或其他语言。

【问题讨论】:

您实际上是通过节点服务器运行它还是尝试在浏览器中执行上述脚本? 抱歉,我可能不清楚我要做什么。第二个 sn-p 实际上是我的 Angular 项目中的“controllers.js”文件。从该文件中,我尝试使用 server.js 发出 ajax 请求。所以我想我正在尝试从我的 Angular 项目中运行 node.js 脚本。 您不能只在节点上运行脚本并期望它将数据提供给外部源,在您的情况下是 Angular。您需要使用 HTTP 请求/响应来提供数据。 【参考方案1】:

$http.get 方法执行 AJAX 请求,因此它会将 js 文件作为字符串供您的 javascript 使用。

您可能正在寻找的是 JSONP,它将作为 JavaScript 执行您下载的任何文件。尝试改用$http.jsonp

Angular docs on $http.jsonp

【讨论】:

以上是关于使用 Angular 的 $http 服务调用 js 文件?的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Angular2 中进行 http 服务调用?

如何在使用 AngularJS/Web API/Angular-ui-router 的指令中调用 $http.put 服务后更新页面

Angular 4 两次调用 WCF REST

Ionic2,Angular2:如何在使用 http get 进行 REST API 服务调用时避免 CORS 问题?

我们是不是需要取消订阅 Angular 中的 http 调用? [复制]

为 Angular 2+ 创建一个装饰器,返回服务 http 调用的最后结果