Magento 2 - Запрос от Javascript возвращается с кодом состояния 302 - PullRequest
0 голосов
/ 06 декабря 2018

Я отправляю запрос POST с данными через XMLHttpRequest.Ответ, который я получаю, имеет код состояния 302.

Функция Javascript:

function createCSV() {
let xhttp = new XMLHttpRequest();
xhttp.open("POST", '', false);
xhttp.setRequestHeader("Content-type", "application/json");
xhttp.send(JSON.stringify(formDataObject));}

Ответ:

Request URL: http://localhost:8888/magento2/delivery/inputform/national
Request Method: POST
Status Code: 302 Found
Remote Address: [::1]:8888
Referrer Policy: no-referrer-when-downgrade

enter image description here

LAYOUT

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <head>
        <!--Include CSS-->
        <css src="Magento_VersandForm::css/inputform.css" />

        <script src="Magento_VersandForm::js/inputform.js"/>
        <script src="Magento_VersandForm::js/w3.js"/>
    </head>
    <body>
        <referenceContainer name="content">
            <block class="Magento\VersandForm\Block\Send" name="Inputform_send" template="Magento_VersandForm::national_input.phtml" />
        </referenceContainer>
    </body>
</page>

Это мой БЛОК

<?php
 namespace Magento\VersandForm\Block;

 class Send extends \Magento\Framework\View\Element\Template
 {
   public function 
   __construct(\Magento\Framework\View\Element\Template\Context 
   $context)
{
    parent::__construct($context);
}

/**
 * Returns description for Tooltip
 * @return string
 */
public function getRequiredFieldsDescription(){
    return 'Diese Felder müssen ausgefüllt sein';
}

}

Это мой КОНТРОЛЛЕР

<?php
namespace Magento\VersandForm\Controller\Inputform;

use Magento\Framework\Controller\ResultFactory;

class National extends \Magento\Framework\App\Action\Action
{
    protected $_pageFactory;
    public function __construct(
        \Magento\Framework\App\Action\Context $context,
        \Magento\Framework\View\Result\PageFactory $pageFactory)
    {
        $this->_pageFactory = $pageFactory;
        return parent::__construct($context);
    }

    /**
     * Booking action
     *
     * @return void
     */
    public function execute()
    {
        // 1. POST request : Get Data From Javascript
        $post = (array) $this->getRequest()->getPost();
    }
}

Почему Magento хочет перенаправитьмне.Пожалуйста, предоставьте информацию, если у вас есть опыт с такого рода ошибками.

1 Ответ

0 голосов
/ 17 декабря 2018

Нашли решение:

Проблема не в контроллере.Проблема была в запросе, который я отправил с моим Javascript.Похоже, что Magento нужен заголовок «X-Requested-With: XMLHttpRequest». Просто добавьте его в свой запрос

function createCSV() {
let xhttp = new XMLHttpRequest();
xhttp.open("POST", '', false);
xhttp.setRequestHeader("Content-type", "application/json");
xhttp.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhttp.send(JSON.stringify(formDataObject));}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...