gpt4 book ai didi

javascript - 通过 AngularJS 发送带有多个数据的 HTTP Post

转载 作者:行者123 更新时间:2023-11-28 08:24:24 25 4
gpt4 key购买 nike

我正在使用 AngularJS。我想通过 AngularJS 在 HTTP post 中发送多个数据。后端运行 Cakephp,我已经验证 Rest API 通过 python HTTP-post 工作。

我有一个看起来像这样的 Controller ;

angular.module('myApp.controllers', []).
controller('AlertDemoCtrl', ['$http', function($http)
{
var post_url;
var post_data;

post_url="http://127.0.0.1/api_XXX/";

post_data = {'data[Table1][field1]':'XX',
'data[Table2][0][field1]':'AA',
'data[Table2][0][field2]':'BB',
'data[Table2][0][field3]':'CC'
};

$http.post(post_url, post_data);
}])

当我运行代码时,页面无法正确加载 AngularJS。如果我注释掉 $http.post(post_url, post_data);,代码将正常运行。我哪里出错了?

非常感谢。

最佳答案

这里有两件事:

首先,对 $http 请求的响应是通过 AngularJS 中的 Promises 处理的。如果您打算对服务器返回的响应执行某些操作,则应该尝试在代码中添加 Promise 处理。来自AngularJS官方docs (v1.3.0)

// Simple POST request example (passing data) :
$http.post(post_url, post_data).
success(function(data, status, headers, config) {
// this callback will be called asynchronously
// when the response is available
}).
error(function(data, status, headers, config) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});

其次,您可以尝试将 $http 调用封装在一个函数中,然后在加载页面的整个 AngularJS 后在事件上调用该函数。

angular.module('myApp.controllers', []).
controller('AlertDemoCtrl', ['$http', function($http)
{
var post_url;
var post_data;

post_url="http://127.0.0.1/api_XXX/";

post_data = {'data[Table1][field1]':'XX',
'data[Table2][0][field1]':'AA',
'data[Table2][0][field2]':'BB',
'data[Table2][0][field3]':'CC'
};

$scope.fetch = function() {
$http.post(post_url, post_data).success(function() {
// handle response here
}).error(function() {
// handle error here
});
}
}])

关于javascript - 通过 AngularJS 发送带有多个数据的 HTTP Post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22591547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com