【发布时间】:2020-03-15 11:47:46
【问题描述】:
我正在使用 Codeigniter 3.1.8 和 Bootstrap 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