【问题标题】:Syntax for jQuery ajax POST when Rest Method has a single string parameter当 Rest 方法具有单个字符串参数时 jQuery ajax POST 的语法
【发布时间】:2020-03-21 10:48:21
【问题描述】:

WebAPI 方法如下:

[HTTPPost]
public IHttpActionResult POST([FromBody] string myStringHere)
{
    if (myStringHere == null) {
        return BadRequest("Dont continue below ");

    //YAY... do stuff below...
}

(如果相关,我使用的是 Net Full Fx 4.6.x)

jQuery Ajax 调用如下:

$.ajax({
    method: 'POST',
    url: C_URL_Endpoint,
    contentType: 'text/plain', // 'application/x-www-form-urlencoded',
    data: "="+ ??????? 
})
.done(etc)
.fail(etc)

我尝试了 contentType: 和 data: 的各种组合,但没有成功,总是收到 null 服务器端。

我确定我以前做过这个,涉及数据的语法很特殊:带 = 符号的格式,但我不记得它是什么;

最好不要告诉我使用 contentType: application/json,我不希望更改服务器端方法签名

【问题讨论】:

    标签: jquery ajax asp.net-web-api


    【解决方案1】:

    我在问题中的 Ajax 语法几乎是正确的。

    我的代码中有一个错误是渲染 contentType:'useless,no effect any',因为我还传递了一个 headers: 对象,它一直将 Content-Type 设置为 application/json!

    答案是

    contentType: 'application/x-www-form-urlencoded',
    data: "=write some string here"
    

    然后服务器方法将接收 = 右侧的所有内容

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-16
      • 1970-01-01
      相关资源
      最近更新 更多