我创建了一个Web应用程序,基本的想法是有一个页面,然后用ajax插入来自php-mysql脚本的数据。在本地Xampp上,应用程序非常完美。
在生产服务器上,一些ajax请求可以正常工作,但其他请求不起作用。
Chrome检查元素显示错误:
POST mysite.com/app/show_staff_profile_ajax.php 500 (Internal Server Error) jquery-2.0.3.js:7845
send jquery-2.0.3.js:7845
jQuery.extend.ajax jquery-2.0.3.js:7301
showProfile ajax.js:466
(anonymous function) ajax.js:150
jQuery.event.dispatch jquery-2.0.3.js:4676
elemData.handle jquery-2.0.3.js:4360
在ajax.js第150行,我得到了:
$(document).on('click','.show_profile',function(){
var id = $(this).attr("id");
showProfile(id); //line 150
return false;
});
在第446行:
function showProfile(id){
$.ajax({ //line 446
type:"POST",
url: "show_staff_profile_ajax.php",
data: {id : id},
success: function(data)
{
$("#program_panel").html(data);
}
});
}
在show_staff_profile_ajax.php上我从mysql和 echo: html标签中获取数据与php变量。
我正在尝试两天来解决这个问题。我看过很多帖子但似乎没什么用呢
答案 0 :(得分:1)
正如karhikr所说,500错误表示错误发生在您的服务器上,而不是在浏览器中。
Xampp是一个Windows软件包,Windows不区分大小写并且放松了写入权限 - 如果将网站移动到Linux环境已经破坏了它,那么可能就是问题所在 - 500错误更可能是写权限错误而不是大写错误。
答案 1 :(得分:1)
500错误表示show_staff_profile_ajax.php文件中存在错误。尝试获取更多信息 - 通常有一个php应用程序的错误日志文件。找到它,它可能会为您提供有关导致错误的更多信息。
您在ajax调用中传递的唯一数据是“id”,所以我也会看一下。也许放一条这样的一句话:
console.log('profile id: ' + id);
在点击功能中运行showProfile(id)之前。可能有一些HTML元素具有不正确的data-id值。这应该在错误发生之前在控制台中显示id。