帮助!在我们的生产环境中使用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
});
答案 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() {}
}).