我不确定你的意思是“由AJAX生成的JavaScript表单” - 是否有可能您正在用JavaScript生成一个表单,然后通过点击(通过javascript)按钮?如果是这样,那么它不是通过AJAX提交,而是作为一个普通的职位。只有在通过AJAX提交表单时,才会调用beforeSend处理程序。您的设置调用是添加一个默认的beforeSend函数,该函数设置Accept标头,以便返回javascript,但仅对通过AJAX提交的请求执行此操作。
这是一个AJAX提交的样子:
$.ajax({
url: '/controller/action',
type: 'post',
dataType: 'json',
data: $('form').serialize(), // this gets the form data
success: function() {
},
...
});
这是一个JavaScript创建表单和提交(非AJAX)。
$('<form><input type="hidden" name="inp" value="somedata" /></form>')
.appendTo(document.body)
.submit();
或(通过点击一个按钮)
$('form #submitButton').click(function() {
$('form').submit()
});