jQuery Ajax 请求返回成功(200 OK)但触发错误事件
您的 jQuery Ajax 请求始终返回 200 OK,表示成功回复。然而,jQuery 仍然执行错误事件而不是成功事件。
问题:
使用 jQuery 的 $.ajax 时,如果 dataType 参数设置为“json”(如您的代码中所示),它期望服务器的响应是有效的 JSON。但是,在您的情况下,服务器响应是 HTML,这不是有效的 JSON。这会导致 jQuery 抛出解析错误并触发错误事件。
解决方案 1:删除 dataType: 'json'
一种解决方案是从您的 Ajax 请求。这将允许 jQuery 将响应解释为纯文本,其中包括您从服务器发送的 HTML。
$.ajax({ type: 'POST', url: 'Jqueryoperation.aspx?Operation=DeleteRow', contentType: 'application/json; charset=utf-8', data: json, cache: false, success: AjaxSucceeded, error: AjaxFailed });
解决方案 2:从服务器返回 JSON
或者,您可以修改服务器端 C# 代码以返回 JSON 而不是 HTML。这将确保 jQuery 能够正确解析响应并执行成功事件。
private void test() { Response.ContentType = "application/json"; Response.Write("{ \"message\": \"Record Deleted\" }"); }
通过此修改,jQuery 将收到有效的 JSON 响应并按预期触发成功事件。
以上是为什么我的 jQuery Ajax 请求返回 200 OK 但触发错误事件?的详细内容。更多信息请关注PHP中文网其他相关文章!