【问题标题】:Why is ajax working on one server and not the next?为什么 ajax 在一台服务器上工作而不是下一台?
【发布时间】:2013-04-25 03:22:46
【问题描述】:

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

    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 的暂存端放置在标题中(就像开发端一样),但它不会运行“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>

【问题讨论】:

  • 您能否在浏览器收到生成的 HTML(而不是 PHP)代码时发布它。
  • 我已经在头部添加了输出到浏览器的内容
  • 您是否在浏览器的 javascript 控制台中遇到任何错误?
  • 不,我什至可以从脚本中发出警报,除了 $.post 中的任何内容。问题是,它在一台服务器上按原样工作,但在下一台服务器上却不行。
  • 您确定 admin-ajax.php 正在返回状态 200 响应吗?

标签: php jquery ajax wordpress


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    相关资源
    最近更新 更多