gpt4 book ai didi

asp.net - 如何将 JSON 对象发送到 ASP.NET Web 服务并在那里处理数据?

转载 作者:行者123 更新时间:2023-12-01 03:27:13 26 4
gpt4 key购买 nike

我在 Web Kit 浏览器中使用本地数据库,为了从数据库获取数据,我有以下代码:

function synchronise() {
myDB.transaction(
function (transaction) {
transaction.executeSql("SELECT * FROM Patients;", [], synchroniseHandler, errorHandler);
}
);

我现在尝试使用 synchroniseHandler 将所有行发送到 Web 服务并在那里处理数据。

function synchroniseHandler(transaction, results) {
for (var i = 0; i < results.rows.length; i++) {
var row = results.rows.item(i);
var patient = new Object();

patient.name = row['name']
patient.address = row['address']
patient.city = row['city']
patient.state = row['state']
patient.zip = row['zip']
patient.phone = row['phone']

$.ajax({
type: "POST",
url: "MyService.asmx/synchronise",
data: JSON.stringify(patient),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert("success");
},
error: function (xhr, status) {
alert("fail" + status);
}
});
}
}

但是它总是失败并提示“错误”

这是一个 ASP.NET 2.0 webb 应用程序,但我使用的是 JSON.NET,我获取数据的 webmethod 是

[WebMethod]
public void synchronise(string patient)
{
JObject o = JObject.Parse(patient);
string name = (string)o["name"];
string address = (string)o["address"];
string city = (string)o["city"];
string state = (string)o["state"];
string zip = (string)o["zip"];
string phone = (string)o["phone"];

现在我没有使用ajax,但有JavaScript函数来获取所有行,然后当我单击按钮时将它们插入到远程数据库中并且它可以工作。但是,我尝试在不回发的情况下自动插入这些内容。

关于如何让它发挥作用有什么建议吗?

编辑:似乎错误来自网络服务:

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

System.InvalidOperationException: Request format is invalid: application/json; charset=UTF-8.

at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()

at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()

编辑2...在 web.config 中添加了对 httppost 的支持并删除了 无法加载资源:服务器响应状态为 500(内部服务器错误)

最佳答案

您的 Web 服务方法需要一个字符串作为参数。您正在传递一个复杂类型。在服务器上定义一个匹配类型,并将其用作参数类型。您不需要像现在这样从 JSON 字符串创建对象。

删除了此处的危险链接

关于asp.net - 如何将 JSON 对象发送到 ASP.NET Web 服务并在那里处理数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4039634/

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