我正在CodeIgniter中构建一个Web应用程序,我正在使用jQuery和AJAX。我在本地创建了整个应用程序(使用XAMPP),一切正常。在我将应用程序上传到我的虚拟主机后,一个AJAX一直在失败。以下是代码的一部分:
// Get all form inputs
var inputs = $('#app-options-existing-form :input[type="text"]');
// Put them in object as name=>value
var data = {};
for(i=0; i<inputs.length; i++) {
data[inputs[i]["name"]] = inputs[i]["value"];
}
// Put loader while AJAX is working
$(".app-content-container").html('<center><img class="loader" src="<?php echo base_url();?>/img/loader.gif" ></center>');
console.log(data);
// Generate POST request
$.post("<?php echo site_url("admin/ajax_app_options"); ?>",
{"add_existing_form_submited" : true, "data" : data2},
function (data) {
alert("test" + data);
});
首先,我认为密钥(“d1d1d1”)是问题,因为我第一次使用“1-1-1”并且在我手动更改它之后,它正在工作。但后来我改变了“d1d1d1”中的所有内容,它再次无效。正如我所说,它适用于XAMPP,但不适用于服务器。使用AJAX的完整URL而不是相对的URL可能有问题吗?但我也在其他AJAX请求中使用它并且它可以工作。
答案 0 :(得分:1)
很确定你的问题是这个人'<center><img class="loader" src="<?php echo base_url();?>/img/loader.gif" ></center>'
您的来源将按字面输出到<?php echo base_url();?>/img/loader.gif
,这当然不是真正的链接。因此,它是一个无法加载的资源。
您可能希望尝试使用:'<center><img class="loader" src="/img/loader.gif" ></center>'
base_url()
函数无论如何都会返回'/'。
重要!一般情况下,您无法在javascript中编写php。或者这将是一个巨大的安全漏洞,可以让访问您网站的每个用户无限制地访问您的服务器。