Magento adminhtml AJAX查询返回302状态

栏目: jQuery · 发布时间: 5年前

内容简介:翻译自:https://stackoverflow.com/questions/16320422/magento-adminhtml-ajax-query-returns-302-status

我目前正在开发一个Magento扩展,其主要组件是前端窗口小部件和后端管理选项面板.我没有前端控制器,但我有一个adminhtml控制器给我一些麻烦.这是我的控制器中的一些代码.

文件:/app/code/community/Mynamespace/Myextension/controllers/Adminhtml/MybackendController.php

class Mynamespace_Myextension_Adminhtml_MybackendController
    extends Mage_adminhtml_Controller_Action
{
    protected function normalAction() {
    }

    protected function ajaxAction() {
        die('got here');
    }
}

normalAction是通过浏览http://mystore.com/index.php/admin/mybackend/normal/key/…/等链接来调用的操作.有一些这样的操作,如索引,保存,编辑,网格等.我的控制器的入口点是一个菜单项,导致索引操作.所有这些行动都按预期工作.

ajaxAction是仅通过AJAX POST查询调用的操作.

问题是每当我尝试这样做时,我都会得到一个302 HTTP状态码回复,重定向到管理仪表板(admin / index / index).如果我尝试通过在浏览器中键入其链接来直接访问此操作,我仍然会得到302.如果我向此操作添加一个菜单项,那么它按预期工作,我看到“到达此处”文本.

执行AJAX请求的Javascript / jQuery代码并不复杂:

$.post(
    'http://mystore.com/index.php/admin/mybackend/ajax/key/.../',
    somePostDataObject,
    function() {
        alert( 'success' );
    }
);

请注意,即使状态代码为302,也会调用success函数.

我尝试调试路由机制,以准确了解导致它重定向的原因.到目前为止,我已经推断出Mage_Core_Controller_Varien_Action类的preDispatch方法中出现了问题.成功解析模块,控制器和操作,并将请求标记为已调度(_dispatched属性为true),直到调度controller_action_predispatch事件为止.事件解决后,请求显示为未分派(_dispatched变为false).据推测,侦听此事件的对象之一会对请求进行一些进一步处理并拒绝它.我无法进行更深入的调试.

通常我会发布一些代码来帮助你理解发生了什么甚至更好,但是从各种配置文件和类中复制了很多行,所以当人们写评论或答案要求查看特定文件时我会这样做.到目前为止,我认为配置是正确的,因为除了AJAX请求之外的所有其他功能都可以正常工作.

Url应该是http://mystore.com/index.php/admin/mybackend/ajax/key/…/?isAjax=true,所以magento知道这是一个ajax请求.

您还需要在POST数据中提供一个from_key,它存储在全局JavaScript变量窗口中.FORM_KEY.

您的jQuery请求应如下所示:

function magentoAdminAjax(data, callback) {
    data.form_key = window.FORM_KEY;
    $.post(
        'http://mystore.com/index.php/admin/mybackend/ajax/key/.../?isAjax=true',
        data,
        callback
    );
}

此检查的代码可以在Mage_Adminhtml_Controller_Action :: preDispatch(行:164)中找到(magento-1.7.0.2)

翻译自:https://stackoverflow.com/questions/16320422/magento-adminhtml-ajax-query-returns-302-status


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JavaScript权威指南

JavaScript权威指南

弗拉纳根 / 东南大学出版社 / 2007-6 / 99.00元

《JavaScript权威指南(影印版)(第5版)》已经经过全面地修订和扩展,涵盖了构建当今Web2.0应用程序所需的JavaScript技术。《JavaScript权威指南(影印版)(第5版)》不仅是一本实例驱动的程序员指南,同时也是一本可以摆在桌边随时查阅的参考手册,它以全新的章节阐述了有效使用Javascript脚本所需要知道的一切,包括: 脚本化的HTTP和Ajax;XML处理;使用......一起来看看 《JavaScript权威指南》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试