403 Magento 2中的禁止AJAX请求

时间:2016-06-09 18:31:43

标签: php jquery ajax magento magento-2.0

我正在使用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 /应用程序/代码/预览/标签/块/ Baz.php

    <?php
namespace Preview\Tag\Block;

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

?>

1 个答案:

答案 0 :(得分:0)

您使用的网址错误,您需要在Magento2中启动代码之前了解Magento2 Structure。

您使用的是阻止而不是控制器,

首先你需要在文件 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>

比您需要定义控制器文件控制器/索引/ 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";
    }
}

现在您可以将网址用作

previewtag/index/indexpreviewtag

两者都相同