gpt4 book ai didi

c# - ajax GET 有效,POST 给出 400 错误

转载 作者:行者123 更新时间:2023-12-02 17:37:48 26 4
gpt4 key购买 nike

GetData(...) 方法正常,但 SetSimple(...) 方法抛出错误 400。

Javascript:

$.ajax(url,
{
type: action,
timeout: 3000,
data: { value: 123 },
contentType: "application/json; charset=utf-8",
//dataType: "json",
success: function (data, textStatus, jqXHR) {
displayInfo("success: "+data);
},
error: function(jqXHR, textStatus, errorThrown ) {
displayInfo("error: "+errorThrown+" "+textStatus);
}
}
);

C#:

[WebGet(RequestFormat = WebMessageFormat.Json)]
string GetData(int value);

[WebInvoke(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, Method = "POST")]
string SetSimple(int value);

为了运行/测试它,我在浏览器中打开该服务,然后在另一个浏览器中打开带有 javascript 的测试页面。 (并且 dataType: "json"似乎没有帮助。)fiddler 响应显示“服务器在处理请求时遇到错误。有关更多详细信息,请参阅服务器日志”,但我在事件日志中没有看到任何内容。有人知道我做错了吗?

最佳答案

您应该将 JavaScript 对象转换为字符串。

JSON.stringify(data)

然后以你的例子为例

$.ajax (url,
{
type: action,
timeout: 3000,
data: JSON.stringify({ value: 123 }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data, textStatus, jqXHR) {
displayInfo("success: "+data);
},
error: function(jqXHR, textStatus, errorThrown ) {
displayInfo("error: "+errorThrown+" "+textStatus);
}
}

);

关于c# - ajax GET 有效,POST 给出 400 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22468834/

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