gpt4 book ai didi

c# - 使用带参数的 JQuery 调用 asmx web 服务导致 500 错误

转载 作者:行者123 更新时间:2023-11-30 20:03:34 27 4
gpt4 key购买 nike

我有一个足够简单的网络服务:

        [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
[WebMethod]
public string GetToken(string a)
{
}

我使用 JQuery 将其称为客户端:

    $.ajax({
post: 'GET',
contentType: "application/json; charset=utf-8",
dataType: 'json',
url: '../url/GetToken',
data: "{'a':'test'}",
success: function (data) {
},
error: function (a, b, c) {
}
});

调用总是失败,返回的错误是500 Internal Server Error。我在 Web 服务中放置了一个断点,但根本无法访问代码。当我修改 Web 服务以完全不接受任何参数(并从 JQuery 调用中删除 data 元素)时,调用成功。我尝试过各种不同的方式来传递 data 元素;我已经传递了一个 JSON 对象(没有引号),并且我已经从 a 参数周围删除了引号。都不起作用。

编辑:

使用 Fiddler 我已经确定导致 500 的实际错误是“无效的网络服务调用,缺少参数值”。

编辑2:

以这种方式传递数据是可行的:

data: "a='test'"

我不知道为什么。有什么想法吗?

最佳答案

尚未对此进行测试,但在您的代码片段中您有 post: 'GET' 而不是 type: 'GET'。这可能会导致服务器将 contentType 拒绝为 json(这就是您的数据未正确序列化的原因)。

关于c# - 使用带参数的 JQuery 调用 asmx web 服务导致 500 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14820678/

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