从Angular发布到Web API时,string为null?

时间:2015-07-21 20:05:25

标签: c# angularjs asp.net-web-api2

当我尝试将字符串发布到我的web api时,该值为null。我试过用引号括起来,但它仍然是空的。

AngularJS代码:

return $http.post("http://localhost:59437/api/Recaptcha/Post", 
                                    vcRecaptchaService.getResponse());

Web Api代码:

[EnableCors("*", "*", "*")]
public class RecaptchaController : ApiController
{
    public string Post([FromBody] string response)
    {
        return response;
    }
}

我也不确定这是如何运作的,因为我的表格中没有回复。 vcRecaptchaService.getResponse()只会返回一个响应字符串,然后我会将其发送给google的验证api以验证重新绑定,因此如果不是,那么[FromBody]部分对我没有意义身体的一部分

2 个答案:

答案 0 :(得分:1)

您的帖子应该以json格式发送数据,例如{response: 'something'}

  return $http.post("http://localhost:59437/api/Recaptcha/Post", 
       { response: vcRecaptchaService.getResponse() } //data 
  );

答案 1 :(得分:0)

将它用引号括起来,但我必须这样做:

return $http.post("http://localhost:59437/api/Recaptcha/Post",
           '"' + vcRecaptchaService.getResponse() + '"'
        );