【发布时间】:2017-06-07 12:25:59
【问题描述】:
我已阅读以下内容:
- Asp.net Core Post parameter is always null
- asp.net webapi 2 post parameter is always null
- web-api POST body object always null
- Web Api Parameter always null
我的端点:
[HttpPost]
[Route("/getter/validatecookie")]
public async Task<IActionResult> GetRankings([FromBody] string cookie)
{
int world = 5;
ApiGetter getter = new ApiGetter(_config, cookie);
if (!await IsValidCookie(getter, world))
{
return BadRequest("Invalid CotG Session");
}
HttpContext.Session.SetString("cotgCookie", cookie);
return Ok();
}
我的要求:
$http.post(ENDPOINTS["Validate Cookie"], cookie , {'Content-Type': 'application/json'});
cookie 是我从用户输入发送的字符串。
请求使用适当的数据发布到端点。但是,我的字符串始终为空。我尝试删除[FromBody] 标签,并在发布的数据前添加=,但没有成功。我还尝试使用上述所有组合添加和删除不同的内容类型。
我做这个具体动作的原因很长,和这个问题无关。
为什么无论我做什么,我的参数总是为空?
编辑:我也尝试过使用{cookie: cookie}
Edit2:请求:
Request URL:http://localhost:54093/getter/validatecookie
Request Method:POST
Status Code:400 Bad Request
Remote Address:[::1]:54093
响应标头
Content-Type:text/plain; charset=utf-8
Date:Mon, 23 Jan 2017 03:12:54 GMT
Server:Kestrel
Transfer-Encoding:chunked
X-Powered-By:ASP.NET
X-SourceFiles:=?UTF-8?B?QzpcVXNlcnNcRG91Z2xhc2cxNGJcRG9jdW1lbnRzXFByb2dyYW1taW5nXENvdEdcQ290RyBBcHBcc3JjXENvdEdcZ2V0dGVyXHZhbGlkYXRlY29va2ll?=
请求标头
POST /getter/validatecookie HTTP/1.1
Host: localhost:54093
Connection: keep-alive
Content-Length: 221
Accept: application/json, text/plain, */*
Origin: http://localhost:54093
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
Content-Type: application/json;charset=UTF-8
Referer: http://localhost:54093/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.8
请求负载
=sec_session_id=[redacted]; _ga=[redacted]; AWSELB=[redacted]
【问题讨论】:
-
您是否使用过 Fiddler 或浏览器的网络控制台等工具来确保 POST 正确发送正文?
-
@ShaunLuttin 是的,我提到它确实发布了适当的数据。数据在请求中发送。
-
您可以发布实际的 HTTP 请求及其标头和正文,而不是发布您如何发出 AJAX 请求。这可能有助于解决问题。
-
@ShaunLuttin 我已经在里面添加了请求
-
您的请求负载不是 JSON,而您的 Content-Type 是 application/json。
标签: c# ajax asp.net-web-api asp.net-core