从Javascript发送JSON并收集WebApi值
搜索结果我正在用javascript做一些事情,我需要在后端执行一些操作,我决定让apiweb成为UN,问题出现在我发出ajax请求时,因为返回(用c#生成)甚至无法收集正在运行的数据方法 他做的第一件事是路由Web API para调用方法特定的Power,我在WebConfig中做了如下操作:从Javascript发送JSON并收集WebApi值,json,asp.net-web-api2,Json,Asp.net Web Api2,搜索结果我正在用javascript做一些事情,我需要在后端执行一些操作,我决定让apiweb成为UN,问题出现在我发出ajax请求时,因为返回(用c#生成)甚至无法收集正在运行的数据方法 他做的第一件事是路由Web API para调用方法特定的Power,我在WebConfig中做了如下操作: <code> config.Routes.MapHttpRoute( name: "DefaultApiRouted", routeTemplate: "api/{cont
<code>
config.Routes.MapHttpRoute(
name: "DefaultApiRouted",
routeTemplate: "api/{controller}/{action}/{param}",
defaults: new { param = RouteParameter.Optional }
);</code>
完成此操作后,我决定在ValuesController中创建一个特定方法,该方法继承自ApicController:
<code>
[HttpGet]
[HttpPost]
public IHttpActionResult Prueba([FromBody]Persona data)
{
return Ok(new { message = "Llego" });
}
public class Persona
{
public string username { set; get; }
public string email { set; get; }
public string password { set; get; }
}</code>
我浏览了很多页面,尝试了很多示例,但没有让那个人输入take值,该方法由我执行,但该人为null,相反,我还尝试了icustomformatter、string等。所有这些我都获得了相同的结果,该方法被执行,但没有获取输入值
从Javascrpt发送,如下所示
<code>var Persona = new Object()
Persona.username ="Pepe";
Persona.email ="Pepe@pepe.com";
Persona.password ="12345";
$.ajax({
url: "http://localhost:5311/api/values/Prueba",
contentType: "application/json",
dataType: "json",
data: Persona,
type: 'POST',
success: function (json) {
alert(json.message)
},
error: function (xhr, status) {
alert("He petao")
},
complete: function (xhr, status) {
}
});</code>
结果是,我们的网络环境非常好,我们的网络环境非常好,我们的网络环境非常好。您的线路配置看起来是正确的
valuescoontroller
中的Pruebla
操作只能用一个Http属性修饰。在这种情况下,is应该是[HttpPost]
[HttpPost]
public IHttpActionResult Prueba([FromBody]Persona data)
{
return Ok(new { message = "Llego" });
}
你可以用JavaScript创建你的人物角色
,比如
var persona = {
username: "Pepe",
email: "Pepe@pepe.com",
password: "12345"
};
对该服务的呼叫将略有变化
$.ajax({
url: 'http://localhost:5311/api/values/Prueba',
contentType: 'application/json',
dataType: 'json',
data: JSON.stringify(persona),
type: 'POST',
success: function (json) {
alert(json.message)
},
error: function (xhr, status) {
alert("He petao")
},
complete: function (xhr, status) {
}
});
你需要编辑以正确的英语翻译最后一段请你回答,我尝试了你的解决方案,但我有一个小问题。这两行代码不起作用:contentType:“application/json”和dataType:“json”,当我使用这两行代码时,对web api的调用是错误400。如果我删除这两行代码,调用将到达服务器,但方法(数据)的参数没有得到值,总是为null。我正在将Visual studio 2015中cordova之后的Javascript发送到Visual studio 2015中的Web API。我不明白为什么当我使用这条线路时,呼叫失败了,你知道为什么会发生这种情况吗?奇怪。尝试使用单引号
“
而不是双引号”
。还可以检查发送的请求。您可以使用Fiddler或浏览器(F12)非常感谢,现在这项工作非常完美,可能是我复制了一些错误。De nada:)。如果这个答案对您有用,请投票。谢谢。