我有一个web api方法:
[HttpPost]
public IActionResult Post([FromBody]string entryInJson)
{ .... }
此方法受远程域命中,因此需要CORS。由于我没有成功在我的mvc6应用程序中找到相关的cs文件,我在web.config中使用了这个解决方案:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
当我使用http://requestmaker.com/等在线工具发帖时,我得到了这个:
请求标题已发送:
POST /api/Entries/ HTTP/1.1
Host: justalk.tukuoro.com
Accept: */*
Content-Type: text/plain
Content-Length: 179
响应标题:
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 0
Expires: -1
Location: https://justalk.tukuoro.com/Account/Login?ReturnUrl=%2FHome%2FError
X-Powered-By: ASP.NET
Access-Control-Allow-Origin: *
Date: Mon, 16 May 2016 05:25:53 GMT
现在,似乎它正在尝试将我(302)重定向到错误页面,并且它没有从post方法返回任何内容,返回:
return new ObjectResult(true);
我不确定发生了什么:
答案 0 :(得分:0)
如果您要发送json
发布请求,则entryInJson
必须object
类型而不是string
例如
[HttpPost]
public IActionResult Post([FromBody]EntryInJson entryInJson)
{ .... }
聊天评论
对我的post方法执行http请求的代码 - 如何将此类“RemoteEntry”转换为JSON数据
http://www.newtonsoft.com/json/help/html/serializingjson.htm
302
不是错误,而是对tempoaray位置的重复。您可以将请求重新发送到响应标头中收到的新位置
而且它可能是服务器配置错误的问题。
modSecurity防火墙阻止您的请求进行自动重定向(302)。