为什么ajax在一台服务器而不是下一台服务器上运行?

时间:2013-04-25 03:22:47

标签: php jquery ajax wordpress

我有一些脚本可以在我的开发服务器上运行,但不能在我的登台服务器上运行:

    add_action('wp_head','get_gz_info',30);
    function get_gz_info(){
        ?>
        <script type="text/javascript" >
        jQuery(document).ready(function($) {
                var modal = {action:'modal_action'};
                var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
            $.post(ajaxurl,modal,function(data){
                $('body').append(data);
            });
        });
        </script>
    <?php
}
php大概是:

add_action('wp_ajax_modal_action', 'set_modal');
    add_action('wp_ajax_nopriv_modal_action', 'set_modal');
    function set_modal() {
...
}

我的开发端一切正常,但javascript被放置在标题中(就像dev一样),但它不会运行“ajax部分”。可能是登台方需要用户名/密码才能访问它吗?

我尝试使用和不使用https并获得相同的结果。

根据检查,这被设置为ajaxurl,“... mysite ... / wp-admin / admin-ajax.php”所以ajaxurl正在实施。奇怪的问题是它在一台服务器上工作,但不在下一台服务器上工作。

-----编辑----- html将此显示为头部中的js(在jquery加载之后)

<script type="text/javascript" >
        jQuery(document).ready(function($) {
                var modal = {action:'modal_action'};
                var ajaxurl = '...mysite.../wp-admin/admin-ajax.php';
            $.post(ajaxurl,modal,function(data){
                $('body').append(data);
            });
        });
        </script>

1 个答案:

答案 0 :(得分:0)

设置登台服务器的人和管理员端的.htaccess阻止该站点访问wp-admin区域中的文件。