[英]How to pass a table data from and HTML front end to the server side in Django through JSON?
[英]How to read json data from AngularJs (front end) to Grails (server side) through $http
我必須通過$ http服務方法將JSON數據從Angular發送到Grails。 JSON數據已發送到服務器。 但是在服務器端,它不會顯示參數值。 我是Grails的新手。
我的代碼:
控制器:
$(function(){
gateApp.factory('saveCreateToServer', function($http){
return {
saveDataToServer:function(taskCreateFormData){
console.log(taskCreateFormData);
return $http({
method : 'POST',
url : 'save',
data : taskCreateFormData,
})
}
}
});
gateApp.controller('moveTaskRuleDefCtrl', function($scope, saveCreateToServer){
$scope.saveCreate=function() {
var reqData = angular.toJson($scope.taskCreateForm);
saveCreateToServer.saveDataToServer(reqData).success(function(data) {
});
}
});
})
在服務器端:
def save(params){
println "<<<<<<<<<uu<<<<<<<<<"+params
}
當您使用$http
和data
鍵發布數據時,該數據不會作為查詢或表單數據發送,而是使用正文參數發送。 因此,您不能使用params
來讀取它,而只能使用request.JSON
:
def save() {
Map requestData = request.JSON
println "Data: " + requestData
println "Data: " + requestData.firstName
}
另外,您不必將對象轉換為JSON字符串,只需傳遞數據即可:
$http({
method: "POST",
url: "/save",
data: {firstName: "John", lastName: "Doe"}
});
更新作為表單數據傳遞的數據
是的,您絕對可以這樣做,這樣就不必更改服務器端代碼。 因此,基本上,Angular默認發送Content-Type
為application/json
數據,因此Grails將其作為request.JSON
接收。 因此,只需將其更改為application/x-www-form-urlencoded
:
$http({
method: "POST",
url: "/save",
data: {firstName: "John", lastName: "Doe"},
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
});
現在,這些參數將在Grails控制器中作為params
提供。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.