【问题标题】:How can I reliably pass base_url from Codeigniter to JavaScript? [duplicate]如何可靠地将 base_url 从 Codeigniter 传递给 JavaScript? [复制]
【发布时间】:2020-03-15 11:47:46
【问题描述】:

我正在使用 Codeigniter 3.1.8Bootstrap 4 开发一个基本的博客应用程序。

这些帖子有 cmets。当然,还有一个 delete cmets 功能。它通过 (jQuery) AJAX 运行:

$('.delete-comment').on('click', function(evt) {
    evt.preventDefault();
    var baseUrl = window.location.origin;
    var deleteUrl = $(this).attr('href');
    var id = $(this).data('id');
    var commentsCount = Number($("#comments_count").text());

    if (confirm('Delete this comment?')) {
        $.ajax({
            url: baseUrl + '/dashboard/comments/delete/' + id,
            method: 'GET',
            dataType: 'html',
            success: function(deleteMsg) {
                commentsCount = commentsCount - 1;
                $('tr#' + id).fadeOut('250');
                $("#comments_count").text(commentsCount);
                $('#comment_delete_msg').text("The comment has been deleted");
                $('#comment_delete_msg').slideDown(250).delay(2000).slideUp(250);
            }
        });
    }
});

在某些情况下,我在 JavaScript 中获取 基本 URL 的方式存在问题:var baseUrl = window.location.origin;。仅当博客平台在网站(域)的根目录中运行时才有效。

如果相反,我让它在https://mywebsite.com/blog 中运行,我需要使用:

var baseUrl = window.location.protocol + '//' + window.location.hostname + '/' + window.location.pathname.split('/')[1] + '/';

由于这是一个既可以在上述情况下也可以在其他情况下工作的平台,我需要一个变量baseUrl 的更“通用公式”。

我可以从 Codeigniter“借用”它吗?如果是,如何?

【问题讨论】:

  • 设置正确的 route,另外,在构建 AJAX 请求的 url 选项期间,我没有使用 base_url。这是无用的部分。
  • baseUrl = '<?php echo base_url();?>' 有什么问题?
  • @Vickel 的评论实际上是唯一合乎逻辑的方法

标签: javascript php codeigniter base-url


【解决方案1】:

您可以在页脚中添加隐藏输入,例如

<input type="hidden" id="base_url" value="<?php echo base_url();?>"/>

那么你就可以在 JS 中使用它了

$('.delete-comment').on('click', function(evt) {
evt.preventDefault();
var baseUrl = $('#base_url').val();
....

【讨论】:

    【解决方案2】:

    您可以在页脚/页眉/页面[查看文件]中声明全局变量

    <script>var baseUrl = '<?= base_url(); ?>';</script>
    

    在您需要的任何地方使用baseUrl

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-12
      相关资源
      最近更新 更多