gpt4 book ai didi

php - Zend 框架 : How to handle exceptions in Ajax requests?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:34:05 24 4
gpt4 key购买 nike

通常当抛出异常时,错误 Controller 接受命令并显示带有常规通用页眉和页脚的错误页面。

Ajax 请求中不需要这种行为。因为如果出现错误,整个 html 页面都会被发送过来。在我直接在 div 中加载 http 响应内容的情况下,这更不受欢迎。

在 Ajax 请求的情况下,我只想接收异常抛出的“实际错误”。

我该怎么做?

我认为,一种肮脏的方法可能是:在 ajax 请求中设置一个 var 并进行相应的处理。不是一个好的解决方案。

最佳答案

如果您使用 contextSwitchajaxContext 操作助手来编码您的错误(可能关闭 autoJsonSerialization),您可以直接传递错误返回为 JSON/XML 对象。

http://framework.zend.com/manual/en/zend.controller.actionhelpers.html#zend.controller.actionhelpers.contextswitch

class Error_Controller extends Zend_Controller{
public function errorAction(){
$contextSwitch = $this->_helper->getHelper('contextSwitch');
$contextSwitch->addActionContext($this->getRequest()->getActionName(),'json')
->initContext();
$errors = $this->_getParam('error_handler');
$this->view->exception = $errors->exception;
}
}

从那里您必须传递每个 AJAX 请求的 format=json 参数,或者设置一个自动附加它的路由链。

对于“稍微”更安全的设置,您可以使用 ajaxContext 作为您的助手,并且只有具有 XMLHttpRequest header 的请求才会提供 json。

关于php - Zend 框架 : How to handle exceptions in Ajax requests?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2947757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com