为什么在处理AJAX请求的函数末尾使用die()?

时间:2018-09-10 作者:Alt C

如果我不使用die(); 在处理Ajax请求的函数之后?

我注意到几乎所有基于WordPress Ajax的代码都在使用它。

2 个回复
最合适的回答,由SO网友:Mark Kaplun 整理而成

如果你没有die, 执行将继续,并可能生成额外的输出,这可能会破坏您试图从服务器发送到浏览器的任何信息。严格地说,你可能不需要die, 但冒这个险没有什么意义。

更一般地说,WordPress Ajax显示了它的年龄,以及在设计Ajax时缺乏使用Ajax的经验。您应该改用WordPress JSON路由,因为它们可以有更好的URL结构,并且编程结构更具逻辑性和模块化。

SO网友:Andy

WordPress应not 需要这样做,这表明编码实践很差。

当您发出Ajax请求时,请求的URL应该生成一个包含所需数据的响应(并设置正确的头来说明它是什么类型的数据,例如JSON)。Nothing else 应在响应中提供,但需要的输出除外。

我一直在使用PHP和JavaScript,虽然我不是WordPress开发人员,但我被这个问题的标题逗乐了。如果WordPress就是这么做的,那就太糟糕了。正如公认的答案所示,这可能是一种阻止响应中包含任何进一步输出的方法。但当然,“进一步的产出”永远不应该成为回应的一部分。

结束