AJAX和500内部服务器错误

时间:2016-03-08 21:44:28

标签: javascript php jquery ajax codeigniter

我正在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);       
});

这是控制台显示console.log(数据)的错误和结果 Error and result of console.log(data)

首先,我认为密钥(“d1d1d1”)是问题,因为我第一次使用“1-1-1”并且在我手动更改它之后,它正在工作。但后来我改变了“d1d1d1”中的所有内容,它再次无效。正如我所说,它适用于XAMPP,但不适用于服务器。使用AJAX的完整URL而不是相对的URL可能有问题吗?但我也在其他AJAX请求中使用它并且它可以工作。

1 个答案:

答案 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。或者这将是一个巨大的安全漏洞,可以让访问您网站的每个用户无限制地访问您的服务器。