ASP.NET API控制器POST /重定向/获取

时间:2016-05-24 15:34:47

标签: angularjs asp.net-mvc redirect post asp.net-web-api

我想在客户端使用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的新手,所以任何想法都会受到赞赏。感谢。

0 个答案:

没有答案