Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $http.get不返回任何内容_Javascript_Angularjs - Fatal编程技术网

Javascript $http.get不返回任何内容

Javascript $http.get不返回任何内容,javascript,angularjs,Javascript,Angularjs,我的工厂方法: angular.module('ymusica').factory('Albums', ['$http', function($http) { return { query: function(term) { return $http.get('/api/album', { params: { q: term } }); } }; }]); 它不工作,意味着它不返回任何东西。如果我的api路径不正确,那么如何更正它。在这里,我使用rx.js、r

我的工厂方法:

angular.module('ymusica').factory('Albums', ['$http', function($http) {
return {
    query: function(term) {
        return $http.get('/api/album', { params: { q: term } });
    }
 };
}]);
它不工作,意味着它不返回任何东西。如果我的api路径不正确,那么如何更正它。在这里,我使用rx.js、rx.time.js、rx.concurrence和typeahead.js。请帮我解决这个问题。谢谢

控制台错误:

这是我的controller.js:

angular.module('ymusica').controller('AlbumSearch', ['$scope', 'Albums', 'Artists', '$q', function($scope, albums, artists, $q) {

$scope.albums = [];
$scope.artists = [];

var watchToObservable = function(scope, expression) {
    var observable = new Rx.Subject();

    scope.$watch(expression, observable.onNext.bind(observable));

    return observable;
}

var functionToObservable = function(scope, name) {

    var observable = new Rx.Subject();

    scope[name] = function(value) {
        observable.onNext(value);
    };

    return observable;
}

var terms = functionToObservable($scope, 'searchMusic');

terms.sample(250)
    .select(function(term) {
        var promise = $q.all([albums.query(term), artists.query(term)]);
        return Rx.promiseToObservable(promise)
    })
    .switchLatest()
    .select(function(promise) { return [promise[0].data.albums, promise[1].data.artists]; })
    .subscribe(function(result) {
        $scope.albums = result[0].slice(0, 5);
        $scope.artists = result[1].slice(0, 5);
        $scope.music = $scope.albums.concat($scope.artists);
    });

$scope.selectMusic = function(item) {
    console.log('music selected!', item);
    $scope.term = item.name;
};

$scope.imageSource = function(item) {
    return item.images['medium'];
};

$scope.hasAlbums = function() {
    return $scope.albums.length > 0;
};

$scope.hasArtists = function() {
    return $scope.artists.length > 0;
};

}]);

404,状态显示,这意味着客户端错误。您的API路径不正确,状态显示为404,这意味着客户端错误。您的API路径不正确

它显示跨区域请求错误当您的web应用程序位于不同的服务器上并且web API位于不同的API上时,会出现此错误

假设您的网站位于:192.168.0.1

您的请求api为192.168.0.65


确保web和api位于同一服务器上,如果不在,则允许跨区域请求

显示跨区域请求错误当web应用程序位于不同的服务器上且web api位于不同的api上时,会出现此错误

假设您的网站位于:192.168.0.1

您的请求api为192.168.0.65


确保web和api都在同一台服务器上,如果没有,则允许跨区域请求,因此似乎存在两个问题,如提供的屏幕截图所示:

  • 跨原点无法加载文件://
  • 状态404
对于第一个问题,有许多线程已经在处理跨源请求或CORS,因为它在一般情况下使用。您可以查看其中一些线程,如:

因此,基本上这意味着它会显示错误,因为您直接尝试运行文件,而它应该是:或类似的内容

一个简单的修复方法是:将其部署到本地或远程web服务器。 更复杂的是: *安装http服务器和 *在应用程序目录中运行http服务器

npm install -g http-server
安装后,请执行以下操作:

cd <YOUR_APP_LOCATION>
http-server 
#OR
http-server -p 9090 -a 0.0.0.0 #this will start the webserver on port 9090

你能在你的工厂检查你的路径并纠正吗?这应该是您的问题所在。

因此,如提供的屏幕截图所示,似乎有两个问题:

  • 跨原点无法加载文件://
  • 状态404
对于第一个问题,有许多线程已经在处理跨源请求或CORS,因为它在一般情况下使用。您可以查看其中一些线程,如:

因此,基本上这意味着它会显示错误,因为您直接尝试运行文件,而它应该是:或类似的内容

一个简单的修复方法是:将其部署到本地或远程web服务器。 更复杂的是: *安装http服务器和 *在应用程序目录中运行http服务器

npm install -g http-server
安装后,请执行以下操作:

cd <YOUR_APP_LOCATION>
http-server 
#OR
http-server -p 9090 -a 0.0.0.0 #this will start the webserver on port 9090

你能在你的工厂检查你的路径并纠正吗?这应该是您的问题。

如果AngularJS应用程序使用http服务,则无法直接从文件系统运行该应用程序。这就是为什么它会给CORS错误。因为您正在尝试从文件协议触发http请求。
要使用$http服务,您需要一个服务器。要在本地进行测试,您可以在计算机上安装wamp/xampp服务器。

如果AngularJS应用程序使用http服务,则无法直接从文件系统运行该应用程序。这就是为什么它会给CORS错误。因为您正在尝试从文件协议触发http请求。
要使用$http服务,您需要一个服务器。要在本地进行测试,您可以在您的计算机上安装wamp/xampp服务器。

查看状态,您将获得404,API路径不正确如何更正API路径?请帮帮我。你需要向我们展示API代码。我使用rx.concurrence.js、rx.time.js和rx.js来实现这一点。你想看哪一个?同时更新te控制器代码。查看状态,您得到404,API路径不正确如何更正API路径?请帮帮我。你需要向我们展示API代码。我使用rx.concurrence.js、rx.time.js和rx.js来实现这一点。你想看哪一个?同时更新te控制器代码。