我知道'request'组件应该只在该请求的持续时间内有效。这是我令人费解的问题。
考虑以下形式:
<form action="${requestUri}" id="someform">
<!-- Leave out some really boring stuff that doesn't affect the question -->
<input type="submit" id="ButtonA" value="Button A - Not AJAX"/>
<input type="submit" id="ButtonB" value="Button B - AJAX" />
</form>
它有以下jQuery附加到ButtonB
<script type="text/javascript">
$(document).ready(function() {
$("#ButtonB").click(function(){
var options = {
type: 'POST',
async: false,
dataType: 'json',
success: function(data){
//Do some Work
},
error: function(xhr, status, error) {
}
};
$('#someform').ajaxForm(options);
})
}
</script>
如果我按ButtonA
,表单会成功提交并重新加载页面。如果按ButtonB
,AJAX命令将成功执行,并且页面上会显示正确的更新。
然而。如果我按ButtonB
然后按ButtonA
,则第二个请求的Accept Header
仍会以application/json, text/javascript, */*; q=0.01
发送,即使此按钮没有绑定“JSON”操作
完成功能后我是否需要重设dataType
?
任何建议表示赞赏。