我查询了类似问题的不同现有问题,但我没有为我的问题得到任何帮助。 事实上,我无法在此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服务参数的内容,它们是正确的:(
答案 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
},
});
};