在服务器端,例如,我使用Flask来处理这些POST请求,同一段代码可以处理两种类型的请求,但在客户端,Ajax请求不会让浏览器刷新整个页面,但表单会。 那么深层次的区别是什么呢?是某些标头字段不同吗?还是其他原因? 谢谢!
在服务器端,例如,我使用Flask来处理这些POST请求,同一段代码可以处理两种类型的请求,但在客户端,Ajax请求不会让浏览器刷新整个页面,但表单会。 那么深层次的区别是什么呢?是某些标头字段不同吗?还是其他原因? 谢谢!
并没有什么区别,只是AJAX正如其缩写所示是异步的,这意味着它不会阻塞其他任何正在运行的东西。表单和AJAX请求都发送POST请求,唯一的区别是浏览器使用表单的POST响应来加载新页面,而AJAX请求的响应则传递给JavaScript中的回调函数。
Accept请求标头}},以告诉服务器它希望获得JSON响应。然后,您编写的服务器端代码应查看它以确定HTML或JSON是否被优先选择(而不用担心HTML或JSON被优先选择的原因)。
Ajax请求是异步后台发送的xhr请求,由您的JavaScript代码处理,而表单请求是普通请求,浏览器页面将重新加载,并由浏览器呈现响应。
表单和Ajax请求以相同的方式发送到后端。对于Flask,您可以捕获POST请求,并且如果Ajax包含来自表单的所有相同信息,则它将是相同的。
提交表单(并导致页面刷新)的是表单触发到DOM的"onsubmit事件"。如果需要,实际上可以覆盖此操作。这通常使用"PreventDefault函数"完成。我认为这在网站上已经被多次涵盖了。您可能只是错过了表单中“onsubmit”事件的概念。