簡體   English   中英

找不到對php的Ajax調用,錯誤404

[英]Ajax call to php not found, 404 error

我正在嘗試構建自己的WordPress主題,它似乎可以工作,但是我的電子郵件表單存在問題。 當我在適應WordPress之前使用它時,該代碼有效,但現在不起作用了。

$(function() {
$("#contactForm input,#contactForm textarea").jqBootstrapValidation({
    preventSubmit: true,
    submitError: function($form, event, errors) {
        // additional error messages or events
    },
    submitSuccess: function($form, event) {
        // Prevent spam click and default submit behaviour
        $("#btnSubmit").attr("disabled", true);
        event.preventDefault();
        console.log ('1');

        // get values from FORM
        var name = $("input#name").val();
        var email = $("input#email").val();
        var phone = $("input#phone").val();
        var message = $("textarea#message").val();
        var firstName = name; // For Success/Failure Message

        // Check for white space in name for Success/Fail message
        if (firstName.indexOf(' ') >= 0) {
            firstName = name.split(' ').slice(0, -1).join(' ');
            console.log ('2');
        }

        $.ajax({
            url: "./mail/contact_me.php",
            type: "POST",
            data: {
                name: name,
                phone: phone,
                email: email,
                message: message
            },
            cache: false,
            success: function() {
                // Enable button & show success message
                console.log ('3');

                $("#btnSubmit").attr("disabled", false);
                $('#success').html("<div class='alert alert-success'>");
                $('#success > .alert-success').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;")
                    .append("</button>");
                $('#success > .alert-success')
                    .append("<strong>Your message has been sent. </strong>");
                $('#success > .alert-success')
                    .append('</div>');

JavaScript文件位於以下路徑中: domain/wp-content/themes/federo/js/contact_me.js

PHP文件在這里: domain/wp-content/themes/federo/mail/contact_me.php

即使@ ruslan-nigmatulin答案有效,也最好傳遞該URL(以及您需要的其他任何東西) wp_localize_script函數,如下所示:

wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajax_url' => get_template_directory_uri() . '/mail/contact_me.php');

在此示例中:
wp_enqueue_script ajax-script是您與wp_enqueue_script使用的wp_enqueue_script
ajax_object是將可用於腳本的對象的名稱
-第三參數是您要傳遞的值數組

然后,要在JS中獲取ajax_url ,只需執行ajax_object.ajax_url 在這種情況下(假設federo是您當前的主題), ajax_object.ajax_url將為http://domain/wp-content/themes/federo/mail/contact_me.php

嘗試改變

url: "./mail/contact_me.php",

進入絕對路徑

url: "http://domain/wp-content/themes/federo/mail/contact_me.php",

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM