Javascript Laravel不通过XMLHttpRequest+超时更新数据库模型
有几个小时我一直在解决这个问题 我有一个网址Javascript Laravel不通过XMLHttpRequest+超时更新数据库模型,javascript,ajax,laravel-4,eloquent,settimeout,Javascript,Ajax,Laravel 4,Eloquent,Settimeout,有几个小时我一直在解决这个问题 我有一个网址 increase/1 路线 Route::get('increase/{id}', '***Controller@action***'); 和控制器 public function action***($id) { $model = ***::where***->first(); $model->counter += 1; $model->save(); } 当我在浏览器中点击url时,计数器递增->
increase/1
路线
Route::get('increase/{id}', '***Controller@action***');
和控制器
public function action***($id) {
$model = ***::where***->first();
$model->counter += 1;
$model->save();
}
当我在浏览器中点击url时,计数器递增->数据库更新
当呈现模板时,我希望通过XMLHttpRequest调用此url。我在xhr页面的底部有一个脚本。超时并不重要
<script>
function pageViewIncrease() {
var xhr = new XMLHttpRequest();
xhr.open("GET", "{{ url() }}/increase/{{ id }}", true);
xhr.timeout = 0;
xhr.send(null);
}
pageViewIncrease();
</script>
超时时,计数器有时递增,有时不递增
随着超时时间增加5001000,…,Laravel不再更新模型
我真的不知道我做错了什么:
谢谢你,我解决了
我发现延迟的请求内容来自缓存
然后在的帮助下编辑代码
我的代码甚至可以与
setTimeout( pageViewIncrease, 3000 );
您是否尝试过使用真实的控制器名称而不是***控制器?或者你只是把它作为一个例子?只是一个例子。但正如我所说。问题在于setTimeout函数。如果没有setTimeout,脚本工作正常。当我没有在页面加载后立即调用路由时,看起来Laravel不想更新模型。
xhr.open("GET", "{{ url() }}/increase/{{ id }}?t=" + Math.random(), true);
setTimeout( pageViewIncrease, 3000 );