我正在以下网站上阅读angularjs $ http.post 快捷方式 http://docs.angularjs.org/api/ng。$ HTTP#methods_post
它接受以下3个参数。
post(url, data, config)
目前我遇到了如何从我的视图传递数据的问题。 这是我的视图代码,要求用户输入ID和ContactNumber。
<div data-ng-controller="postreq">
<form>
RequestID:<input type="text" data-ng-model="request.Id"/>
ContactNo:<input type="text" data-ng-model="request.newcontact"/>
<button data-ng-click="add()">Add</button>
</form>
</div>
这是我在Angularjs控制器中尝试的内容并且无法正常工作..不知道如何获取request.Id和request.newcontact的输入值。
function postreq($scope, $http) {
$scope.add = function ()
{
$http.post(
'/api/request',
JSON.stringify(**?????? here i am confused how to pass data**),
{
headers: {
'Content-Type': 'application/json'
}
}
).success(function (data) {
$scope.request= data;
});
}
答案 0 :(得分:3)
以下是如何使用Angular执行$ http帖子的基本示例:
$http({
cache: false,
url: "/api/request",
method: "POST",
data: {email: "my_login_email@example.com", password: "123456"}
}).
success(function (data) ->
// here the "data" parameter has your response data
).
error(function () ->
// if you are here something is not going so good
)
另请注意,Angular不会像普通表单那样POST数据(这非常重要,具体取决于您的后端系统,例如在PHP中您赢得了无法使用$ _POST) 。为了做到这一点,你需要做更多的工作:
// your module
myModule = angular.module("myModule ", []);
// you module config
myModule.config (["$httpProvider", function($httpProvider) {
$httpProvider.defaults.transformRequest = function (data) {
if data == undefined {
return data
}
return $.param(data)
}
$httpProvider.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded; charset=UTF-8"
}])
还要注意$ .param是jQuery。如果你不使用jquery,你可以找到其他方法。
答案 1 :(得分:1)
$http在内部做了一些事情,因此我们作为应用程序开发人员不必考虑它们。
因此,这意味着在使用$http
时,我们不需要明确地执行这些操作。您可以将代码更改为:
$http.post('/api/request', $scope.request);
这将实现您的问题所需的一切。顺便说一句,这将返回promise
success
和error
回调方法。这些可用于处理响应。
答案 2 :(得分:0)
您可以使用以下语法:
$http.post(
'/api/request',
$scope.request,
{
headers: {
'Content-Type': 'application/json'
}
});