所以我有一个有趣的小问题。
使用以下代码从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'因此不是 允许访问