Javascript 如何在发送到AngularJS中的服务器之前删除JSON中的额外引号
因此,我尝试在服务器端发送与模型匹配的数据。我的js代码如下:Javascript 如何在发送到AngularJS中的服务器之前删除JSON中的额外引号,javascript,angularjs,json,forms,angular-forms,Javascript,Angularjs,Json,Forms,Angular Forms,因此,我尝试在服务器端发送与模型匹配的数据。我的js代码如下: vm.answers={} vm.formData = {answers:vm.answers}; vm.continue=function(){ $location.path('profiles') if(user=='employer'){ $scope.json = angular.toJson(vm.formData); questionService.
vm.answers={}
vm.formData = {answers:vm.answers};
vm.continue=function(){
$location.path('profiles')
if(user=='employer'){
$scope.json = angular.toJson(vm.formData);
questionService.postPostingAnswers($scope.json).then(function (data) {
location.path("/profiles")
console.log(data)
},
function () {
alert("Error processing your request")
}); }
else{
$scope.json = angular.toJson(vm.formData);
questionService.postProfileAnswers($scope.json).then(function (data) {
location.path("/profies")
console.log(data)
},
function () {
alert("Error processing your request")
});
}
}
我的问题是,当我使用angular.toJson时,它也会将formData的花括号串起来,这是我不想要的。
我的服务器需要如下主体:
{
"answers": {
"Q1": "A2",
"Q2": "A4"
}
}
我用当前代码发送的是:
"{
"answers":{
"Q1":"A2",
"Q2":"A4"
}
}"
我应该如何解决此问题?非常感谢!!: 解决方案:不要发送已解析的对象。只是
questionService.postProfileAnswers(vm.formData)
没关系。如果不工作,请传递postProfileAnswers功能代码
更新:请制作一个plnkr或只是检查一下你的控制台或分享一个屏幕截图
很奇怪,我不加。请检查您的问题是否不是其他问题,是否需要调试
此外,如果您仍在考虑添加JSON,请尝试使用删除第一个和最后一个字符
$scope.json = $scope.json.slice(1, -1);
不使用angular.toJson直接发送vm.formData是否有效?是的,但我的单选按钮键不是字符串,我希望键与值一起也是字符串。因此,您的服务器需要一个带引号的json键?确切地说,我在上面提供了一个示例。问题是,我的服务器需要带引号的json键。我已经试过了,但没用。嘿,巴勃罗,我的控制台在切片后给了我这个。答案:{Q1:A2,Q2:A3,Q3:A6,Q6:A15,Q7:A17,Q9:A19}它没有删除引号,而是删除了大括号。有什么问题吗?你能访问你的服务器吗?如果可以,请检查收到的数据。查看您的帖子,您收到了正确的数据:->{答案:{Q1:A2,Q2:A4}我检查了一下,没有得到正确的数据。我甚至可以在转换为JSON后立即控制我正在发送的注销类型的数据,它显示一个字符串。那个些额外的边界引号只是为了读取比例。这告诉您内容是一个字符串。如果它是一个天才,颜色是不同的,没有引用。