在shopware 6中通过ajax调用将数据从twig templatete传递到控制器

问题描述 投票:0回答:2

shopware 6 中如何通过 Ajax 调用将数据从 Twig 模板传递到控制器?

通过使用此代码,我通过ajax调用成功调用了路由名称为“ajaxcall”的控制器,但我没有将数据传递到控制器中。

    import HttpClient from 'src/service/http-client.service';
    import Plugin from 'src/plugin-system/plugin.class';

    export default class customPlugin extends Plugin {

    init() {
        this._client = new HttpClient();
        document.getElementById("button").addEventListener("click", this.displayDate);


    }
    displayDate() { 
        this._client = new HttpClient();
        this._client.get('/ajaxcall');
    }
  }

使用该方法,js成功调用了controller,但js并没有往controller发送数据。

您的指导能够欣赏!

ajax shopware shopware6
2个回答
0
投票

get 并不是真正有效的提交数据,请使用 post instread...

一个例子:

this._httpClient.post('/ajaxcall', JSON.stringify({
            mykey: 'myValue',
            mySecondKey: 'mySecondValue',
        }), response => {
            // do something with response 
        });

0
投票
<script>
var data = new FormData();
data.append('key1',value1);
data.append('key2',value2);

var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function(response) {
    if (xhr.readyState == XMLHttpRequest.DONE) { // XMLHttpRequest.DONE == 4
        if (xhr.status == 200) {
            // success
        }
        else if (xhr.status == 400) {
            
        }
        else {
            
        }
    }
};


xhr.open('POST', url, true);
xhr.onload = function () {
    
};
xhr.send(data);
© www.soinside.com 2019 - 2024. All rights reserved.