0

帮助!在我们的生产环境中使用 jquery ajax post 方法时出现 500 内部服务器错误。我以前遇到过这个问题,但一直无法解决。当时,我刚决定将“POST”方法更改为“GET”……这很奏效。但现在更重要的是我能够使用 jquery ajax post 方法。这只是一个简单的 ajax 后调用,但由于某种原因,它在生产环境中内部崩溃了。

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

这就是我正在做的。

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

3 回答 3

2

编辑:除非你在 LAMP 上,否则几乎没用 .. 对不起,芽

通常 apache 将当天的日志存储在 /var/log/apache2/error_log.1 中(可能缺少 .1 只需执行 ls -l | head )

这是假设你在 LAMP 上。

对于 SSL 错误,添加 ssl_

于 2013-06-14T12:43:10.400 回答
1

它只是您遇到问题的一段代码还是“所有” 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>
于 2013-06-14T14:01:03.793 回答
0

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

例如:

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

客户端:

$.ajax({
    type: "POST",
    contentType: "application/json",
    data: "{'myData':'" + testVal + "'}",
    url: "code.asmx/TestMethod",
    beforeSend: function() {}
}).
于 2013-12-17T13:08:33.500 回答