2015-07-21 41 views
0

当我尝试将字符串发布到我的web api时,值为空。我试图用引号包装它,但它仍然是空的。从Angular发布到Web API时,string是否为空?

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()只是返回一个响应字符串,然后我将发送到谷歌的验证API以验证recaptcha,所以[FromBody]部分对我来说没有意义,如果这不是身体的一部分

+0

什么'vcRecaptchaService.getResponse()'方法呢? –

+0

@PankajParkar - 当你检查recaptcha checbox时它会返回一个字符串响应。 – xaisoft

回答

1

您的文章呼叫应以JSON格式一样{response: 'something'}

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

我试过这个,我也试过'{response:''“+ vcRecaptchaService.getResponse()+”'“}},但它仍然是空的 – xaisoft

+0

@xaisoft不需要单引号,你是否在控制台? –

+0

刚刚检查,没有控制台错误。我尝试硬编码一个字符串,而不是使用'vcRecaptchaService.getResponse()',但那也行不通。 – xaisoft

0

结束语引号的工作进行发送的数据,但我不得不这样做,就像这样:

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