如何从其他前端应用程序发送Web Api的cookie

时间:2017-09-02 14:15:08

标签: javascript cookies asp.net-web-api xmlhttprequest csrf

我有一个仅提供静态内容的Web应用程序 - HTML,CSS和JavaScript。我有另一个应用程序,它是一个ASP.NET Web API。两个应用程序都位于不同端口上的同一台计算机上(用于测试目的,它们可以位于生产环境中的不同计算机或域中)。当我浏览Web应用程序时,它会在Web API的第一个ajax调用中同时获取Cookie以及Anti CSRF的表单标记。所以我使用 XMLHttpRequest setRequestHeader 函数将body标记设置为标题。似乎没有必要设置cookie令牌,因为出于安全原因,cookie被 HttpOnly 属性限制,据我所知浏览器负责将cookie发送到cookie的任何域属于。

但是,当我进行连续的ajax调用时,而不是将这两个令牌传递回服务器,服务器只接收标头令牌。

目前, Web API 是为Web应用程序设置的 CORS 限制。但如果问题与交叉原点有关,那么我猜,标题也不能通过,如果我弄错了,请纠正我。

那么有人可以帮我解决这个问题吗?我只是希望能够在不影响安全性的情况下将cookie从一个应用程序发送到另一个应用程序。