gpt4 book ai didi

c# - 使用 XMLHttpRequest 将带有参数的数据发送回 Web 服务器

转载 作者:行者123 更新时间:2023-11-28 01:39:37 25 4
gpt4 key购买 nike

如果我从 PostUser 方法中删除字符串参数,下面的代码将起作用。但是当我添加 blob 时,它会失败并显示 404。我做错了什么?

controller

public class LongPollController : ApiController
{
public User PostUser(string blob)
{
var user = new User
{
Name = "John Smith",
Age = 20,
};

return user;
}
}

cshtml

<div id="message">Waiting....</div>

@section scripts {
<script>
var data = new Object();
data.blob = 'Hello World';

var request = new XMLHttpRequest();
request.onreadystatechange = function () {
if (request.readyState == 4 && request.status == 200) {
handleUser(JSON.parse(request.responseText));
}
};
request.open("POST", "api/longpoll/user");
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader('Content-Type', 'application/json');
request.send(JSON.stringify(data));

function handleUser(user) {
var msg = document.getElementById('message');
msg.innerHTML = 'Name: ' + user.Name + '<br />' +
'Age: ' + user.Age + '<br />'
}

</script>

将我的数据添加到 request.send() 以便 WebApi 接收它们的正确方法是什么?

最佳答案

Web api 与 asp.net mvc Controller 有点不同,并且 Web api 默认映射器也有点不同。1. 创建 C# 类来保存 Web api 的输入

public class JsData{
public string Blob{get;set;}
}

2.改变

public User PostUser(string blob)

public User PostUser(JsData input) 

在你的情况下它也可以运行,但是你需要修改 web.api 的路由

关于c# - 使用 XMLHttpRequest 将带有参数的数据发送回 Web 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21074896/

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