我想在客户端使用AngularJS,使用此API的P / R / G设计。这是我的API方法:
[HttpPost]
public HttpResponseMessage UpdateRaw(HttpRequestMessage request)
{
//do stuff...
var res = request.CreateResponse(HttpStatusCode.Redirect);
var authority = request.RequestUri.Authority;
var uri = string.Concat(authority, "/api/DataApi/GetRaw");
res.Headers.Location = new Uri(uri);
res.Headers.Add("Access-Control-Allow-Origin", "*");
return res;
}
我在此控制器中有另一种方法(DataApiController
),称为GetRaw()
。基本上我希望客户端发出POST,调用此方法,然后重定向到GET方法。这是我的JS代码:
//get the data and build the js rep
$http({
method: 'POST',
url: '/api/DataApi/UpdateRaw',
headers: {
'Content-Type': undefined
},
data: {
test: "test"
}
}).then(function (result) {
console.log("RAW--------------");
console.log(result.data);
// do stuff...
}, function () { console.log("DIDN'T WORK"); });
但是,当我发布POST时,我的浏览器控制台会说" The request was redirected to a URL ('localhost:25498/api/DataApi/GetRaw') which has a disallowed scheme for cross-origin requests.
"我知道this回答,但结果相同。
我找到了另一个建议添加行
的网站 res.Headers.Add("Access-Control-Allow-Origin", "*");
但这似乎也不起作用。
我是ASP.NET和Web Dev的新手,所以任何想法都会受到赞赏。感谢。