【发布时间】:2016-05-09 11:12:05
【问题描述】:
我正在尝试通过 AJAX 更新资源的属性(使用 PUT 或 PATCH 请求)并且请求被多次触发。
我正在使用 Angular JS 和 jQuery。
HTML 模板
这是我的 HTML 模板的样子 -
<span id="test" ng-click="setValue('test')"></span>
Javascript 代码
这是我的 Angular JS 代码的样子 -
$scope.setValue = function(value){
$.ajax({
method: 'PATCH' // or PUT,
url: 'resources/' + $scope.resourceId,
data: {
test: value
}
}).success(function(response){
console.log(response);
});
};
Rails 代码
这是我的控制器的更新方法的样子 -
def update
@resource.update(resource_params)
respond_with(@resource)
end
截图
AJAX 请求被多次触发(接近 15 次)。请看下面的截图 -
只需将PATCH(或PUT)请求更改为POST,调用只会被触发一次。请看下面的截图 -
PUT 请求被多次触发,而 POST 请求只被触发一次,有什么原因吗?
即使PUT 请求正确更新了值。我想防止它被多次解雇。有没有办法做到这一点? (不改变路由或控制器方法)
【问题讨论】:
标签: javascript jquery ruby-on-rails angularjs ajax