我有AJAX表单提交在本地运行良好。但当推送到我的暂存服务器时,进程页面是404\'ing。我也不能直接访问它,因为它是404,但我也在服务器上检查它,并且它在那里100%拥有正确的权限。
AJAX的代码:
$(\'body\').on(\'submit\', \'.product-form\', function(e){
e.preventDefault();
$.ajax({
url : \'/wp-content/themes/hinge_client_theme/page-templates/template-parts/template-logic/send-form.php\',
type : \'POST\',
data : thisForm.serialize(),
before : $(".error-message").remove(),
success : function(data) {
// removed for question
},
});
});
发送表单。php在网络标签上显示404ing,有什么想法吗?在当地工作良好。
SO网友:jgraup
看看wp localize script. 它允许您在加载脚本之前将url编码到单独的javascript对象中。get_template_directory 检索当前主题目录的绝对路径。如果您的WP安装目录与本地开发不同,请使用它。如果重命名文件夹或WP_CONTENT 位于不同的位置。
<?php
// Register the script
wp_register_script( \'some_handle\', \'path/to/myscript.js\' );
// Localize the script with new data
$translation_array = array(
\'send_form_php\' => get_template_directory() . \'/page-templates/template-parts/template-logic/send-form.php\',
);
wp_localize_script( \'some_handle\', \'object_name\', $translation_array );
// Enqueued script with localized data.
wp_enqueue_script( \'some_handle\' );
然后在js文件中可以使用:
<script>
// alerts \'Path to the send-form.php\'
alert( object_name.send_form_php );
</script>
SO网友:Mateusz Paulski
maybe try this:
$(\'body\').on(\'submit\', \'.product-form\', function(e){
e.preventDefault();
$.ajax({
url : get_template_directory() . \'/page-templates/template-parts/template-logic/send-form.php\',
type : \'POST\',
data : thisForm.serialize(),
before : $(".error-message").remove(),
success : function(data) {
// removed for question
},
});
});