ajax - WordPress:预生产中出现 404 axios 错误,但在本地没有
问题描述
我需要你的帮助。我不确定它是否真的与 WordPress 有关。我目前正在开发一个表单草稿主题,我需要在该主题上发送 AJAX 请求。在本地一切正常。但不是在我收到 404 错误的预生产中。这个想法是:
- 创建画布
- 在JS中获取画布的数据URL
- 在 Ajax 中发送
- 将此数据保存在自定义字段中
这是HTML
<canvas id="canvas" width="700" height="700"></canvas>
<img id="background" src="/path-to-image/background.png" />
这是JS
let canvas = document.getElementById("canvas");
let background = document.getElementById("background");
let ctx = canvas.getContext("2d");
image.addEventListener("load", () => {
ctx.drawImage(background, 0, 0, 700, 700);
ctx.fillText("John", 170, 381);
ctx.fillText("Doe", 205, 401);
let endpoint = "/path-to-file/admin-ajax.php";
let form_data = new FormData();
form_data.append("action", "set_canvas");
form_data.append("canvas", canvas.toDataURL());
axios
.post(endpoint, form_data)
.then((response) => {
console.log(response.data);
})
.catch((error) => {
console.log(error);
});
});
这是PHP
function set_canvas() {
$response = array(
'test' => 'ok',
);
echo wp_send_json($response);
wp_die();
}
add_action( 'wp_ajax_set_canvas', 'set_canvas' );
add_action( 'wp_ajax_nopriv_set_canvas', 'set_canvas' );
这是控制台在本地显示的内容
{test: 'ok'}
这是控制台在预生产中显示的内容
Error: Request failed with status code 404
at e.exports (createError.js:16)
at e.exports (settle.js:17)
at XMLHttpRequest.E (xhr.js:66)
如果我稍微修改 JS,它可以在本地和预生产中使用。也就是说,如果我将任何字符串传递给“canvas”参数。像这样:
let canvas = document.getElementById("canvas");
let background = document.getElementById("background");
let ctx = canvas.getContext("2d");
image.addEventListener("load", () => {
ctx.drawImage(background, 0, 0, 700, 700);
ctx.fillText("John", 170, 381);
ctx.fillText("Doe", 205, 401);
let endpoint = "/chemin-vers-le-fichier/admin-ajax.php";
let form_data = new FormData();
form_data.append("action", "set_canvas");
form_data.append("canvas", "string"); // <--- Here
axios
.post(endpoint, form_data)
.then((response) => {
console.log(response.data);
})
.catch((error) => {
console.log(error);
});
});
你有解决方案吗?
我期待着阅读你。
解决方案
推荐阅读
- swift - 我正在快速使用编码键,但它给出了这个错误
- javascript - 如何强制单击“常规数据”按钮?
- ansible - 从脚本步骤到内联 Ansible Playbook 的 Rundeck 变量
- vb.net - 我的代码中的中间函数返回错误,你能帮帮我吗?
- javascript - 计算后Javascript响应中的未定义值
- php - 为什么数据打印双倍
- reactjs - React.FC 和 FC 的区别
- python - Python add string value between variables conditonally
- configuration - 从 tt_content.php 到 ext_tables.sql 的 Typo3 后端映射
- python-3.x - 我们如何使用 python 3.7 连接到 onedrive