Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.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/20.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 如何更改AngularJS get请求的结构?_Javascript_Angularjs_Asynchronous_Angularjs Http - Fatal编程技术网

Javascript 如何更改AngularJS get请求的结构?

Javascript 如何更改AngularJS get请求的结构?,javascript,angularjs,asynchronous,angularjs-http,Javascript,Angularjs,Asynchronous,Angularjs Http,作为AngularJS应用程序的一部分,我有以下状态: .state('app.stages', { url: '/stages', views: { 'menuContent': { templateUrl: 'templates/stages.html', controller: 'StagesCtrl' } } }) .state('app.stage', { url: '/stages/:stageId', v

作为AngularJS应用程序的一部分,我有以下状态:

.state('app.stages', {
      url: '/stages',
      views: {
        'menuContent': {
      templateUrl: 'templates/stages.html',
      controller: 'StagesCtrl'
    }
  }
})

.state('app.stage', {
url: '/stages/:stageId',
views: {
  'menuContent': {
    templateUrl: 'templates/stage.html',
    controller: 'StageCtrl'
  }
}
相关控制器包括:

controller('StagesCtrl', function($scope,$http) {
$http.get("http://localhost/apistages")
.then(function(response) {
    $scope.stages = response.data;
});
})

.controller('StageCtrl', function($scope, $http, $stateParams) {

  $http({
    method: 'GET',
    url: 'http://localhost/apistage/',
    params: {stageId: $stateParams.stageId}
 }).then(function successCallback(response) {
    $scope.stage = response.data;
 }, function errorCallback(response) {

  });
});
stages列表工作正常,但是stage控制器中的查询尝试访问,这将导致500(内部服务器错误)


我需要使用的URL格式是。如何调整查询以获取该URL?

然后不要在$http GET请求上使用
params
选项。相反,在调用服务时,只需在URL上使用简单的字符串连接即可

$http({
    method: 'GET',
    url: 'http://localhost/apistage/'+$stateParams.stageId //append state parameter in URL itself
})

对于RESTAPI,我强烈建议您使用angular模块。它具有很好的处理rest调用的能力。

您不应该使用两个控制器。仅使用一个控制器并使用$routeParams获取url参数。现在检查参数是否存在,并根据需要区分逻辑。您可以使用以下代码:
var stageId=$routeParams.stageId;
If(stageId)
做点什么
其他的
做些不同的事情

我曾经尝试过这个方法,但由于深夜和在PHP中停留了一段时间,我使用了一个。用于连接,而不是a+。这么简单的错误。