Nic*_*ick 75 javascript ajax jquery
我正在尝试执行此AJAX帖子但由于某种原因我收到服务器500错误.我可以看到它在控制器中达到了断点.所以问题似乎在于回调.任何人?
$.ajax({
type: "POST",
url: "InlineNotes/Note.ashx?id=" + noteid,
data: "{}",
dataType: "json",
success: function(data) {
alert(data[1]);
},
error: function(data){
alert("fail");
}
});
Run Code Online (Sandbox Code Playgroud)
这是应该返回的字符串:
{status:'200', text: 'Something'}
Run Code Online (Sandbox Code Playgroud)
tva*_*son 65
我怀疑服务器方法在通过断点后抛出异常.使用Firefox/Firebug或IE8开发人员工具查看从服务器获得的实际响应.如果有异常,您将获得YSOD html,这可以帮助您找出要查找的位置.
还有一件事 - 您的数据属性应该是{}而不是"{}",前者是空对象,而后者是作为查询参数无效的字符串.更好的是,如果您没有传递任何数据,请将其删除.
v1r*_*00z 31
如果有人使用codeigniter框架,问题可能是由csrf保护配置启用引起的.
Sti*_*ian 18
我自己也遇到过这个问题,即使我在我的情况下找不到它的原因,当改变POST时GET,问题500错误消失了!
type:'POST'
Run Code Online (Sandbox Code Playgroud)
BTE*_*BTE 18
这是通过Ajax请求获取数据的Ajax请求简单代码
$.ajax({
type: "POST",
url: "InlineNotes/Note.ashx",
data: '{"id":"' + noteid+'"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
alert(data.d);
},
error: function(data){
alert("fail");
}
});
Run Code Online (Sandbox Code Playgroud)
Rob*_*nic 10
我遇到了类似的复合错误,需要两个解决方案.在我的例子中,技术堆栈是MVC/ASP.NET/IIS/JQuery.服务器端失败并出现500错误,这是在控制器处理请求之前发生的,这使得服务器端的调试变得困难.
以下客户端调试使我能够确定服务器错误
在$ .ajax错误回调中,向控制台显示错误详细信息
error: (error) => {
console.log(JSON.stringify(error));
}
Run Code Online (Sandbox Code Playgroud)
这至少使我能够查看初始服务器错误
"JSON请求太大而无法序列化"
这已在客户端web.config中解决
<appSettings>
<add key="aspnet:MaxJsonDeserializerMembers" value="150000" />
Run Code Online (Sandbox Code Playgroud)
但是,请求仍然失败.但这一次有一个不同的错误,我现在能够在服务器端调试
"请求的实体太大"
通过将以下内容添加到服务web.config来解决此问题
<configuration>
…
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferPoolSize="524288">
<readerQuotas maxDepth="32" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
</binding>
</basicHttpBinding>
</bindings>
Run Code Online (Sandbox Code Playgroud)
配置值可能需要进一步调整,但至少它解决了ajax post导致的服务器错误.
我今天碰到了同样的事情.如前所述,获取Firebug for Firefox,启用控制台并预览POST响应.这帮助我找出问题是多么愚蠢.我的行动是期望int类型的值,我发布了字符串.(ASP.NET MVC2)
来自 ASP.NET 的 500 可能意味着在为请求提供服务时在某个时刻抛出了未处理的异常。
我建议您将调试器附加到 Web 服务器进程(假设您有权访问)。
一件奇怪的事情:您向服务器发出 POST 请求,但没有传递任何数据(所有内容都在查询字符串中)。也许它应该是一个 GET 请求?
您还应该仔细检查 URL 是否正确。
我今天才面临这个问题。出现这种错误时,你不会从服务器得到任何响应,因此很难定位问题所在。
但我可以告诉你“500内部服务器错误”是服务器而不是客户端的错误,你在服务器端脚本中遇到错误。通过闭包注释掉代码闭包并尝试再次运行它,你很快就会发现你在某个地方漏掉了一个字符。
| 归档时间: |
|
| 查看次数: |
513369 次 |
| 最近记录: |