替代标题为" application / x-www-form-urlencoded"

时间:2016-12-25 16:41:47

标签: javascript angularjs asp.net-web-api cors

所以我有一个有趣的小问题。

使用以下代码从API客户端调用我的AngularJS时,一切正常,但我的API只收到一个空对象作为数据:

var req = {
      method: 'Post',
      url: config.API + request.toLowerCase() + '/',
      headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
      data: data
}

 $http(req)
     .then(function(response){
          // handling response
     })

现在,如果我删除headers: { 'Content-Type': 'application/x-www-form-urlencoded' }或将其更改为headers: { 'Content-Type': 'application/json' },我会收到此错误:

  

请求的资源不支持http方法' OPTIONS'

我的API控制器如下所示:

    [EnableCors("*", "*", "*")]
    [HttpPost]
    public string Post([FromBody]dynamic value)
    {
        // Do some stuff
        Response response = new Response();
        return JsonConvert.SerializeObject(response);
    }

我正在寻找的是一种防止令人厌倦的方法"选项不受支持"错误,仍然能够将动态数据发送到我的控制器

修改
关于副本,我已经尝试了他们的方法,因此我已经在我的控制器中使用[EnableCors]。但如果我加上这个:

public static void Register(HttpConfiguration config)
{
    config.EnableCors();
}

我收到此错误

  

对预检请求的响应没有通过访问控制检查:   '访问控制允许来源'标头包含多个值' *,*',   但只允许一个。起源' http://localhost:82'因此不是   允许访问

0 个答案:

没有答案