Javascript Can';使用POST请求AJAX传递/接收值
我正试图通过Ajax Post请求发送一些数据。 请求的代码如下所示:Javascript Can';使用POST请求AJAX传递/接收值,javascript,c#,ajax,post,Javascript,C#,Ajax,Post,我正试图通过Ajax Post请求发送一些数据。 请求的代码如下所示: $.ajax({ url: "[url of page]", type: "POST", data: {saluto: true}, dataType: 'text', success: function (response) { alert("successful" + response); }, error: function () {
$.ajax({
url: "[url of page]",
type: "POST",
data: {saluto: true},
dataType: 'text',
success: function (response) {
alert("successful" + response);
},
error: function () {
alert("error");
}
});
所以在这种情况下,我应该收到salloto=true
这是后端代码:
[HttpPost("Test")]
public async Task<string> testHelloWorld(bool saluto)
{
try
{
string testString = "Funziona";
Console.Write(testString + ": " + saluto + "\n");
return testString;
}
catch (Exception ex)
{
Log.Error("API(CallToXML) - Exception", ex);
return null;
}
}
[HttpPost(“测试”)]
公共异步任务testHelloWorld(bool-Saleto)
{
尝试
{
string testString=“Funziona”;
Write(testString+“:“+salloto+”\n”);
返回testString;
}
捕获(例外情况除外)
{
Log.Error(“API(CallToXML)-异常”,ex);
返回null;
}
}
所以如果salloto=true
我的控制台应该打印“Funziona:True”
输出tho是“Funziona:False”
如果我对一个字符串尝试同样的操作,它不会打印字符串,只会留下输出,如“Funziona:”
为什么我的代码没有接收任何数据?
我做错什么了吗?
谢谢。尝试删除
数据:
并将url:
更改为:{value:“~/Controller/Method?sallo=true”}
您需要将操作的签名更改为
public async Task<string> testHelloWorld([FromBody]bool saluto)
公共异步任务testHelloWorld([FromBody]bool-Saleto)
默认情况下,模型绑定器在请求参数中查找简单类型,而不是在请求主体中
查看以获取更多信息。请包括用于发送和接收字符串的代码可能与否重复,但它看起来确实像javascript,这就是问题所在。@TommasoBertoni这是相同的代码,我只是将
bool-salloto
更改为string-salloto
,前端请求变为salloto:“prova”
当您从前端发送true
时,您是否收到salto==false
?数据很简单,使用POST
发送,因此无法从URI中提取
@TommasoBertoni非常正确,应该是[FromBody]
-更正了这更好,但我认为这不会解决问题。如果只有一个参数,或者请求来自POST
我正在检查另一个答案是否有效,asp.net应该能够理解源代码。我会在一秒钟内检查此方法,thanks@phuzi仅添加[FromBody]没有帮助,它实际上使情况变得更糟,因为请求甚至无法被发送到您的方法,它可以工作,但如果我尝试发送更大的字符串,它将无法工作。请求的状态仍将返回错误