【问题标题】:403 Forbidden AJAX request in Magento 2Magento 2 中的 403 禁止 AJAX 请求
【发布时间】:2016-06-09 18:31:42
【问题描述】:

我正在使用 Magento 2 我想从我的自定义 js 发送一个 AJAX 请求。

这里是代码

    jQuery.ajax({
    method: "POST",
    url: "app/code/Preview/Tag/Block/Baz/getTitle",
    data: {data: doc.output()},
}).done(function(data){
    console.log(data);
});

但它返回 403 禁止。

请告诉我是什么导致了问题。

控制器代码:

root_dir/app/code/Preview/Tag/Block/Baz.php

    <?php
namespace Preview\Tag\Block;

/**
* Baz block
*/
class Baz extends \Magento\Framework\View\Element\Template
{
    public function getTitle()
    {
        return "Foo Bar Baz";
    }
}

?>

【问题讨论】:

    标签: php jquery ajax magento magento-2.0


    【解决方案1】:

    您使用的网址错误,您需要先了解一下 Magento2 的结构,然后再开始在 Magento2 中编写代码。

    您使用的是块而不是控制器,

    首先你需要在文件etc/frontend/routes.xml

    中定义一个路由
    <?xml version="1.0"?>
    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
        <router id="standard">
            <route id="previewtag" frontName="previewtag">
                <module name="Preview_Tag" />
            </route>
        </router>
    </config>
    

    比之后需要定义Controller文件Controller/Index/Index.php

    <?php
    namespace Preview\Tag\Controller\Index;
    
    class Index extends \Magento\Framework\App\Action\Action
    {
        public function execute()
        {
            // your code here 
            echo "Foo Bar Baz";
        }
    }
    

    现在您可以将 URL 用作

    previewtag/index/indexpreviewtag

    两者都一样

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-12
      • 1970-01-01
      • 2020-07-19
      • 2014-10-31
      • 2016-11-24
      • 2012-02-03
      • 1970-01-01
      • 2019-08-10
      相关资源
      最近更新 更多