Magento adminhtml AJAX查询返回302状态

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

内容简介:翻译自: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


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

查看所有标签

猜你喜欢:

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

Transcending CSS

Transcending CSS

Andy Clarke、Molly E. Holzschlag / New Riders / November 15, 2006 / $49.99

As the Web evolves to incorporate new standards and the latest browsers offer new possibilities for creative design, the art of creating Web sites is also changing. Few Web designers are experienced p......一起来看看 《Transcending CSS》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

MD5 加密
MD5 加密

MD5 加密工具

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

Markdown 在线编辑器