必需的字符串参数' licenceplate'不存在"

时间:2016-09-05 19:38:22

标签: angularjs spring-mvc angular-http

我查询了类似问题的不同现有问题,但我没有为我的问题得到任何帮助。 事实上,我无法在此question或此one中使用@RequestBody。

我试图将一些参数从Angular控制器传递给Spring MVC控制器,但我收到此错误消息 def createdb(self): db = QtSql.QSqlDatabase.addDatabase('QSQLITE') db.setDatabaseName('testing.db3') db.open() query = QtSql.QSqlQuery() query.exec_("create table sas(test1 varchar(20), test2 varchar(20))") for i in range(self.listWidget.count()): query.exec_('insert into sas (test1, test2) values({}","{}")'.format(self.listWidget.item(i).text()+self.comboBox_11.currentText(), self.lineEdit.text())) QtSql.QSqlDatabase.commit QtSql.QSqlDatabase.close self.statusbar.showMessage('Finished') 这是我的Angular服务:

errorCode:500
message:"Required String parameter 'licenceplate' is not present"

在我的后端没有发现任何东西,似乎很奇怪

myApp.httpEnterVehicle = function(levelNumber, placeNumber, licenceplate, placeType) {
    return $http.put("/myApp/rest/vehicle/entervehicle", {
        params : {
            'licenceplate' : licenceplate,
            'placeType' : placeType, 
            'placeNumber' : placeNumber, 
            'levelNumber' : levelNumber
        },
    });
};

你知道发生了什么吗?我已经尝试过检查我的Angular服务参数的内容,它们是正确的:(

1 个答案:

答案 0 :(得分:0)

您的put请求调用不正确,它应如下所示

$http.put('url', //1st parameter
   {}, //request body
   {} //request configuration here
);

如果你比较当前的put电话,你可以看到你做错了什么。您只需要在请求正文中传递{}(空对象),然后传递您的配置对象代替request body

myApp.httpEnterVehicle = function(levelNumber, placeNumber, licenceplate, placeType) {
    return $http.put("/myApp/rest/vehicle/entervehicle",
      {}, //added blank object as request body
      {
        params : {
            'licenceplate' : licenceplate,
            'placeType' : placeType, 
            'placeNumber' : placeNumber, 
            'levelNumber' : levelNumber
        },
    });
};