AngularJs $http postsuccessCallback 导致页面重定向,即使服务器以 200 状态响应也
AngularJs $http post successCallback is causing the page to redirect even when the server responds with a 200 status
我在agularjs中编写了一个简单的控制器来处理表单提交。表单是使用 ng-submit 提交的。
服务器正在成功处理发布请求并返回 http 状态 200。但是AngularJs使用POST方法再次调用当前页面URL,这导致服务器返回MethodNotAllowedException(Laravel 5.2)页面。
这是控制器代码。
app.controller('adminAddController', ['$scope', '$http', 'Page', function($scope, $http, Page){
$scope.formData = {};
$scope.processForm = function($event) {
console.log($scope.formData);
$http({
method : "post",
url : 'http://localhost:8000/api/blogs',
data : $scope.formData,
})
.then(function successCallback(response) {
console.log(response);
}, function errorCallback(response) {
console.log(response);
});
};
}]);
通常发生这种情况是因为您没有阻止表单的默认操作,因此在发送 Ajax 调用后,表单会正常提交,然后浏览器要么被重定向,要么根据表单提交重新加载页面。
如果添加:
$event.preventDefault();
对您的处理程序来说,这应该照顾它。
app.controller('adminAddController', ['$scope', '$http', 'Page', function($scope, $http, Page){
$scope.formData = {};
$scope.processForm = function($event) {
// prevent default form submission
$event.preventDefault();
console.log($scope.formData);
$http({
method : "post",
url : 'http://localhost:8000/api/blogs',
data : $scope.formData,
})
.then(function successCallback(response) {
console.log(response);
}, function errorCallback(response) {
console.log(response);
});
};
}]);
此外,根据角度文档,如果您的<form>
元素没有 action
属性,则表单提交将被 angular 自动阻止。 您没有显示相关的表单 HTML,因此我们不知道这是否适用于您的情况。
尝试像这样更改:
app.controller('adminAddController', ['$scope', '$http', 'Page', function($scope, $http, Page){
$scope.formData = {};
$scope.processForm = function($event) {
console.log($scope.formData);
$http.post('api/blogs', {data:$scope.formData})
.then(function successCallback(response) {
console.log(response);
}, function errorCallback(response) {
console.log(response);
});
};
}]);
谢谢和干杯
因此,问题似乎并不像看起来那么难解决。
我从表单元素中删除了 action=" 属性,它开始按预期工作。
相关文章:
- 带Jquery的wep API,加载资源失败:服务器响应状态为404(未找到)
- 如何在 http 上调用 end().服务器响应对象
- 将服务器响应格式化为人类可读
- 尝试获取服务器响应
- 如何在 Javascript 函数中拦截 Web 服务器响应
- 如何从服务器响应中显示phonegap中的图像
- Nodejs-websocket:如何在没有服务器响应的情况下连续发送客户端消息
- 正在分析Meteor中的错误服务器响应
- 正在从LWIP服务器响应中检索16位整数
- 可以´t从对象XMLHttpRequest获取服务器响应
- 试图理解返回javascript方法的服务器响应
- AJAX 中的常见服务器响应页原因
- 节点服务器响应错误: process.nextTick(function(){throw err;});.
- GO 中的长时间轮询,服务器响应不当
- 在 Iframe 中发布服务器响应
- Jquery 响应从服务器响应中修剪值
- 在铁表单提交后检查服务器响应
- 量角器单击链接并将服务器响应与文件进行比较
- 如何确定 Node .js服务器响应是否已停止
- 当服务器响应缓慢时,jQuery 在加载/就绪时不触发