gpt4 book ai didi

c# - jQuery:在 jquery ajax json 调用中返回字符串响应

转载 作者:行者123 更新时间:2023-11-30 13:26:24 25 4
gpt4 key购买 nike

我正在将 json 数据传递到我的通用处理程序页面 GenericHandler.ashx.cs使用 jquery ajax 请求和 json 作为数据类型。

在我的处理程序代码中,我想以字符串格式返回 html 表。这是我的处理程序代码的快照

context.Response.ContentType = "text/plain";      
context.Response.Write(sResponse);

其中 sResponse 包含 <table><tr><td>PropertyName</td><td>PropertyID</td></tr><tr><td>abc</td><td>1</td></tr></table>

我的 jquery 代码(检查错误函数中的内联注释):

  id = { 'PropertyID': id };
$.ajax("Handlers/GenericHandler.ashx?Type=getProperties",
{
type: 'post',
dataType: 'json',
cache: false,
contentType: "application/json",
data: JSON.stringify(id),
success: function (data) {
console.log(data);
},
error: function (xhr, status) {
console.log(status); // Output as parseError
console.log(xhr.responseText); // My sResponse string ! But Why Here ?
}
});

我的问题:

  1. 为什么我在成功函数中没有得到响应
  2. 这是正确的做法吗?或者我应该将 html 表转换为 json 对象然后返回它。并再次以表格格式显示它?

最佳答案

来自 jQuery 文档 here ,您可以看到 dataType 参数是 AJAX 期望从服务器返回的响应。 contentType 参数是放置在您对服务器的请求的 header 中的内容,以便服务器知道如何读取请求。

因此,您应该将 dataType 更改为“text”,例如:

$.ajax("Handlers/GenericHandler.ashx?Type=getProperties",
{
type: 'post',
cache: false,
dataType: 'text',
contentType: "application/json",
data: JSON.stringify(id),
success: function (data) {
console.log(data);
},
error: function (xhr, status) {
console.log(status);
console.log(xhr.responseText);
}
});

我发现这在提醒数据库上的 INSERT 或 UPDATE 调用成功时很有用。为这样的任务创建和返回 JSON 对象是无关紧要的。

关于c# - jQuery:在 jquery ajax json 调用中返回字符串响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24402765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com