考虑以下场景和代码片段。这是基于ASP.NET MVC,Angular 1.x,JS,Jquery等技术的质疑。
考虑有一个文本框,有属性id =“textExample”ng-model =“exampleText”。根据MVC架构,我将从视图中将文本框输入发送到控制器。因此,对于此任务,我使用了以下代码片段。
(A)
$http ({
// Rest is avoided for now //
data : $.param({'Test_Code' : $scope.exampleText})
}).then() ---
(B)
$http({
data : "sendingData"
}).then ({})
(C)
$http ({
data : ({'Test_Code' : $scope.exampleText})
})
(d)
$http({
data : $("#textExample").val()
})
(E)
var testExample = $scope.exampleText ; // $scope.exampleText == 'XYZ'
$http ({
data : ({'Test_Code' : testExample })
})
运行应用程序后,我检查了前端(google Developers Console)中的每个功能,然后点击我尝试发送的参数。在后端/控制器端接收结果, ASP NET MVC控制器,POST请求
(A) --> Value is Null
(B) --> Value is "sendingData"
(C) --> Value is Null
(D) --> Value is Null
(E) --> Value is 'XYZ'
我发现的主要问题(如我所见)是即使每5个函数都获得参数,它也会在发送给Controller时更改值。但硬编码参数不会改变(B)。有时,如果其他技术没有,那么上述技术中的一种可以成功。那么,有人可以解释一下为什么会发生这种事情吗?或者使用
的不良做法是什么答案 0 :(得分:0)
AngularjS API中描述了通过AngularJS进行请求/响应的默认转换规则。
规则被描述为:
请求转换($httpProvider.defaults.transformRequest and $http.defaults.transformRequest)
是一个包含以下功能的数组:
如果请求配置对象的data属性包含对象serialize it into JSON format
。
根据这些规则,您的( C )必须确实有效。您能否查看$scope.exampleText
中是否收到有效值/文字?