我有一个通用问题,当通过AJAX将DOM元素的数据发送到服务器时间歇性地发生,我找不到重现它们的方法。
有很多页面通过AJAX从DOM发送数据(如<?php
foreach ($allposts as $posts) {
echo '<div class="col-sm-1">
<div class="thumbnail">
<img class="img-responsive user-photo" src="https://ssl.gstatic.com/accounts/ui/avatar_2x.png">
</div><!-- /thumbnail -->
</div><!-- /col-sm-1 -->
<div class="col-sm-11">
<div class="panel panel-default companel">
<div class="panel-heading companel-heading">
<strong><a href="'.base_url('home/user/'.$posts->author_name).'">'.$posts->author_name.'</a></strong> <span class="text-muted">'.unix_to_human($posts->post_date).'</span>
</div>
<div class="panel-body">
'.$posts->post.'
</div><!-- /panel-body -->
</div><!-- /panel panel-default -->
</div><!-- /col-sm-11 -->';
}
?>
或$("#id").val()
),在某些情况下,用户会抛出以下异常:
“无法将id'undefined'转换为Long” - 尝试操作应该是数字的id时
“页面不存在” - 当Spring MVC控制器尝试使用从表单(related)发送的数据时
我能够重现其中一些案例的一种方法是在页面加载时触发AJAX调用的页面上刷新大量页面刷新,而不是在用户交互上具有AJAX调用的页面上(例如按钮单击) )。
我真的很困惑这个问题,因为如果我从$("#form").serialize()
调用切换到$(document).ready()
我将不会在页面加载时有AJAX调用的页面上获得异常,但这不是在这种情况下解决它的正确方法,因为我不想/必须等待脚本和图像加载,并且它不能解决AJAX绑定到用户事件的页面的问题。
我假设服务器总是向用户发送正确的DOM(因为我从来没有能够重现大多数情况),那么为了获得这些异常会发生什么呢?