使用Jquery ajax post方法时出现500内部服务器错误

时间:2013-06-14 12:39:58

标签: jquery ajax post

帮助!在我们的生产环境中使用jquery ajax post方法时,我收到500内部服务器错误。我之前遇到过这个问题,但从来没有弄清楚。当时,我刚刚决定将“POST”方法更改为“GET”......这样就有效了。但现在我能够使用jquery ajax post方法更为关键。这只是一个简单的ajax post调用,但由于某种原因,它在生产环境中内部爆炸。

这是一个使用带有IIS7的Windows 2008服务器的Web场。

这就是我正在做的事情。

$.ajax({
    type: "POST",
    url: url,
    data: data,
    success: success,
    dataType: dataType
 });

3 个答案:

答案 0 :(得分:2)

编辑:除非你在LAMP上,否则几乎没用..抱歉芽

通常apache将日志存储在/var/log/apache2/error_log.1中当天(可能会丢失.1只是执行ls -l | head)

这假设您正在使用LAMP。

对于SSL错误,请添加ssl _

答案 1 :(得分:1)

您遇到问题或“全部”POST方法只是一段代码吗?您可以尝试下面的“测试”模板代码来验证POST是否适用于非常基本的服务器端方法。您的错误是服务器端,因此这是为了验证某些东西在服务器端是否正常工作。如果这个非常基本的代码不起作用,那么如果它是您的服务器端方法是问题,或者可能是服务器配置,它可以缩小范围。我使用这样的代码来验证我可以在添加更复杂的方法之前进行POST。此外,使用Fiddler可以真正了解正在发生的事情,因为它可以为您提供有关错误的更多详细信息。

您的服务器端代码在哪里:

[WebMethod]
public string TestMethod(string test)
{
    return "I received the argument: " + test;
}

您的客户端,使用更新版本的JQuery:

<script>
$(function() {  
    var testVal = "this is a test string";
    $.ajax({
        type: "POST",
        contentType: "application/json",
        data: "{'test':'" + testVal + "'}",
        url: "code.asmx/TestMethod",
        beforeSend: function() {}
    }).done(function(data) {

        alert(data.d);

    }).always(function() {

    }).fail(function(jqXHR, textStatus, errorThrown) {
        alert('Error: ' + errorThrown);
    })
});
</script>

您的web.config中可能需要

<configuration>
    <system.web>
    <webServices>
        <protocols>
            <add name="HttpPost"/>
        </protocols>
    </webServices>
    </system.web>
</configuration>

答案 2 :(得分:0)

如果要调用服务器端的Web方法,请验证参数的名称是否与数据声明相同。

代表:

[WebMethod()]
public static bool MyMethod(string myData)
{... }

客户方:

$.ajax({
    type: "POST",
    contentType: "application/json",
    data: "{'myData':'" + testVal + "'}",
    url: "code.asmx/TestMethod",
    beforeSend: function() {}
}).