ajax - 无法在 zend 框架 3 中使用 ajax 发送
问题描述
我正在尝试发送一个 ajax 在 GrupoUsuarioController 中调用我的函数“alterarPermissoesAction”。
js代码:
$.ajax({
type: 'POST',
url: '<?= $this->url( 'grupo-usuario-insumo', [ 'action' => 'alterarPermissoes' ] ) ?>',
data: dados,
dataType: 'json',
success: function( r ) {
console.log( r );
}
});
当我这样做时,zf3 尝试呈现一个页面并将该页面作为响应发送给我。
我应该怎么做 zf3 停止尝试渲染页面?
解决方案
在您的控制器中,alterarPermissoesAction
必须以:
return $this->getResponse()->setContent(
Json::encode(
[
[your response]
]));
但不要应用您必须在您的Module.php
类似内容中指定的布局:
public function onBootstrap(MvcEvent $e)
{
...
$sharedEvents = $e->getApplication()
->getEventManager()
->getSharedManager();
$sharedEvents->attach(__NAMESPACE__, 'dispatch',
function ($e) {
$result = $e->getResult();
if ($result instanceof \Zend\View\Model\ViewModel) {
$result->setTerminal($e->getRequest()->isXmlHttpRequest());
} else {
throw new \Exception([your message]);
}
});
}
推荐阅读
- pyqt5 - 为什么我的旧 folium 应用程序停止显示地图 [已修复]
- c# - 插入和注册数据未显示在数据库表 Visual Studio 2019 中
- android-studio - 如何在 repository.remote.getRecipes(queries) 中找到错误?
- python - 使用 Flask 和 Ngrok 作为 webhook 在 python 中的 Telegram Bot:一段时间后,bot 停止回答,但脚本仍然收到 post 消息
- android - Kotlin 1.3.6X 插件无法安装(设置说未验证)
- html - 解析文件时如何停止重复代码
- mongodb - : 未捕获的 MongoDB\Driver\Exception\ConnectionTimeoutException
- macos - docker-compose pull 错误:“创建临时租约时出错:只读文件系统”
- swiftui - 带渐变的圆形笔划质量差
- sql - 如何在大量数据中通过SQL查询将10-10行的数据作为单行获取?