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发送数据。
您的指导能够欣赏!
get 并不是真正有效的提交数据,请使用 post instread...
一个例子:
this._httpClient.post('/ajaxcall', JSON.stringify({
mykey: 'myValue',
mySecondKey: 'mySecondValue',
}), response => {
// do something with response
});
<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);