2017-06-18 270 views
0

Angularjs代码错误405 get方法不允许

var app = angular.module('myApp', []); 
app.factory('httpSend', ['$http', '$q', function($http, $q) { 
    var app = {}; 
    app.sendToServer = function(data) { 
     $http({ 
      method: "POST", 
      url: '/report', 
      data: data, 
      headers: { 
       'Content-type': 'application/x-www-form.urlencoded;' 
      } 
     }).then(function(response) { 
      debugger 
      var result = data; 
     }); 
    } 
    app.getfromServer = function() { 
     var def = $q.defer(); 
     $http.get('/report').then(function(data) { 
       console.log(data); 
       def.resolve(data); 
      }), 
      function(error) { 
       def.reject("Failed to get albums"); 
      }; 
     return def.promise; 
    } 
    return app; 
}]); 
app.controller('myCtrl', ['$scope', '$http', 'httpSend', '$filter', function($scope, $http, httpSend, $filter) { 
    $scope.names = ["ankit patidar", "adhishi ahari", "kritin joshi", "kautilya bharadwaj", "punita ojha", "manvi agarwal", "apeksha purohit", "shipra jain", "mansi nangawat", "praveen soni"]; 
    $scope.data = []; 
    $scope.names.forEach(function(name) { 
     $scope.data.push({ 
      name: name, 
      checkin: "", 
      checkout: "" 
     }) 
    }); 
    $scope.login = []; 
    $scope.check = function(name, doing) { 
     debugger 
     name[doing] = new Date(); 
     name[doing] = $filter('date')(name[doing], 'dd-MM-yyyy hh:mm:ss'); 
     $scope.login.push(angular.copy(name)); 
     if (doing == "checkout") { 
      var q = JSON.stringify($scope.login); 
      httpSend.sendToServer(q); 
     } 
    } 
    $scope.getData = function() { 
     httpSend.getfromServer(); 
    } 
}]); 

`

Python代码

def get(self): 
logging.info('get is triggered') 
obj = CheckIn.query().fetch() 
emp_obj = [] 
for x in obj: 
    logging.info('I am inside for loop ') 
emp_obj.append({ 
    'name': x.name, 
    'Check_in': x.inDate, 
    'check_out': x.outDate 
}) 
logging.info('I am inside emp_obj') 
self.response.write(json.dumps(emp_obj)) 

我需要获取存储在NDB数据存储在前端的所有数据这就是为什么即时通讯使用HTTP获取方法,但错误显示方法不允许。尽管使用查询获取并显示其对python广告触发get方法的响应,为什么会出现错误,控制流中是否存在错误,或者我的get方法中缺少某些内容,因此现在可以发布nd存储了吗?数据

+0

请勿使用var app = {};为你的工厂逻辑和改变x-www-form.urlencoded为json.Change var app的名字在你的工厂逻辑 – Vivz

+0

而不是var app = {}使用什么?并更改内容类型也没有更改,显示相同的错误 –

+0

您可以使用任何其他名称。您正在var app上加载您的角度模块。因此,如果您为工厂逻辑使用任何其他变量名称,它会更好。 – Vivz

回答

0

将您的工厂更改为以下。不要使用与用于初始化模块的控制器逻辑相同的变量应用程序。

app.factory('httpSend',['$http', '$q',function($http, $q){ 
    return { 
    'sendToServer': function(data) { 
     var def = $q.defer(); 
     $http({ 
      method: "POST", 
      url: '/report', 
      data: data, 
      headers: { 
       'Content-Type': 'application/json' 
      } 
     }).then(function(response) { 
      debugger 
      var result = response.data; 
      def.resolve(result); 
     }); 
      return def.promise; 
    }, 
    'getfromServer': function() { 
     var def = $q.defer(); 
     $http.get('/report').then(function(data) { 
       console.log(data); 
       def.resolve(data); 
      }), 
      function(error) { 
       def.reject("Failed to get albums"); 
      }; 
     return def.promise; 
    } 
} 
     }]); 
相关问题