【发布时间】:2019-04-03 12:17:02
【问题描述】:
我目前正在尝试使用 Ajax 将页面的特定部分加载到 div 中:
$(document).on("click", "#claim_forum_groups", function (e) {
e.preventDefault();
$.ajax({
url: "/user/{{ $user->id }}/groups",
type: "POST",
cache: false,
data: {
subtype: 'claim_groups',
type: 'forum_account'
},
headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }
})
.done(function (data) {
if(data == "success")
{
$("#forum_info_container").load(location.href + " #forum_info_container");
$("#forum_data_container").load(location.href + " #forum_data_container");
alert("good");
}
})
.fail(function (data) {
console.log(data);
alert("bad");
});
});
目前发生的事情相当奇怪。有时,它会正确加载两个 div。当我重新尝试对所有内容进行“压力测试”时,它只会加载“forum_info_container”,当我检查“网络”选项卡时,它会显示视图中使用的未定义 stdClass 索引“id”的错误。
即使在我测试它时,ID 是定义的,因为当我刷新页面时,一切看起来都很好。它似乎有时有效,有时却无效。我的猜测是 .load() 工作得太早或类似的东西。我尝试使用 setTimeOut,但没有解决问题。
这是我的 forum_data_container div 供参考:
<div class="card-body mb-3" style="padding-top:0px" id="forum_data_container">
@if(!is_null($info))
<div class="post-meta mb-2">
Posts - {{ $info->id }}
</div>
<div class="post-meta mb-2">
Stats - {{ $info->id }}
</div>
@else
No info available.
@endif
</div>
【问题讨论】:
标签: javascript jquery ajax laravel laravel-blade