当我向api的控制器请求时,我遇到了很多问题,我认为问题仍然存在于配置api中。
当我创建具有ValuesController的普通web api时。
对于ValuesController,我创建了一个请求ajax,如下所示,我不需要跨域,只是简单。
$.ajax({
type: "delete",
url: "http://localhost/api/values/4",
success: function (data) {
console.log(data)
}
})
就像上面一样,我可以正常获取数据但是
对于项目需要Controller中的EnableCors
[EnableCors(origins: "*", headers: "*", methods: "*")]
public class ValuesController : ApiController
{
[HttpDelete]
public HttpResponseMessage Delete([FromUri] Int64 ID1, [FromUri] Int64 ID2)
{
}
}
我无法从ajax请求获取数据表格,如下所示:
$.ajax({
type: 'delete',
url: 'http://localhost/api/values/1/2',
crossDomain: true,
success: function () {
}
});
或
$.ajax({
type: 'delete',
url: 'http://localhost/api/values/',
data: {ID1 : 1, ID2: 2},
crossDomain: true,
success: function () {
}
});
我看到默认项目api的web.config和monster project api的web.config之间存在差异,但我不知道如何配置web.config。
请查看
怪物项目:https://drive.google.com/file/d/0B3EtIiiIvE-Hb0UwcFZDVHhSUmc/view?usp=sharing
默认值为:https://drive.google.com/file/d/0B3EtIiiIvE-HVTU4cnltNzZJNnM/view?usp=sharing
感谢。 ^ _ ^
答案 0 :(得分:0)
启用cors与您拥有的删除问题无关。
这里的问题是,你在Uri中传递了多个id(fromUri),通常你需要在url中传递一个id。
将删除方法更改为:
[HttpDelete]
public HttpResponseMessage Delete(int id)
{
// your code goes here
}
并且对于您的请求,这应该有效
$.ajax({
type: "delete",
url: "http://localhost/api/values/4",
success: function (data) {
console.log(data)
}
});
希望这会有所帮助。