jQuery-Ajax不适用于生产服务器

时间:2013-11-15 17:50:59

标签: php mysql ajax jquery

我创建了一个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变量

我正在尝试两天来解决这个问题。我看过很多帖子但似乎没什么用呢

2 个答案:

答案 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。