Преобразуйте этот относительный путь в абсолютный


В приведенном ниже сценарии .js ссылка ajaxPath прерывается, когда содержащая страница находится вне корневого каталога сайта. Есть ли обходной путь, чтобы сделать этот путь абсолютным?

jQuery(document).ready(function($){
    initContentEditable();

    var dir = ContentEditableSettings.content_editable_url;
    var ajaxPath = 'wp-admin/admin-ajax.php'; //THIS RELATIVE PATH BREAKS OUTSIDE ROOT DIRECTORY

    function initContentEditable(){                 
        $('.contenteditable.furniture').blur(updateContentEditable);
        $('.contenteditable.custom').blur(updateContentEditableCustom);
        $('.contenteditable.title').blur(updateContentEditableTitle);
        $('.contenteditable').each(function(){
            var parent = $(this).parent();
            var display = parent.css('display');
            $(this).css('display', display);
        });
    }   

    function updateContentEditableTitle(e){
        e.preventDefault();
        var span = $(this);
        var data = new Object();
        data.pid = span.attr('data-pid');
        data.title = span.find('.saver').text();
        data.action = 'ce_update_title';
        data.security = ContentEditableSettings.nonce;
        $.post(ajaxPath, data, onContentSaved); //AJAXPATH BREAKS AS RELATIVE REF
    }
 1
Author: N2Mystic, 2012-11-01

1 answers

Пока ваш каталог wp-admin все еще находится в корне вашего сайта, вы можете просто добавить косую черту (/) в URI. Альтернативно, вы можете использовать wp_localize_script() чтобы передать URL-адрес вашего сайта или, если вы используете функции AJAX WordPress, переменную ajaxurl JS.

var ajaxPath = '/wp-admin/admin-ajax.php';

Или

<?php
wp_enqueue_script( 'some_handle' );
$translation_array = array( 'ajaxPath' => admin_url( 'admin-ajax.php' ) );
wp_localize_script( 'some_handle', 'object_name', $translation_array );
?>
 2
Author: Joseph Leedy, 2012-11-02 12:19:26