2016-06-09 4 views
0

Magento 2를 사용하고 있습니다. 사용자 정의 js에서 AJAX 요청을 보내려고합니다.403 Magento 2에서 금지 된 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"; 
    } 
} 

?> 

답변

0

URL이 잘못된 것입니다, 당신은 당신이 시작하기 전에 Magento2 구조에 대해 배울 필요 Magento2의 코드.

은 1 당신은 파일 등/프론트 엔드/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/index 또는 previewtag

로 URL