使用API​​与另一个来源(CORS)重用应用程序

fon*_*nes 7 cookies fetch cors reactjs

我有一个react应用程序,它使用在另一个域上运行的java ee后端休息服务器.我启用了CORS:

Access-Control-Allow-Origin : http://localhost:3000
Access-Control-Allow-Headers : origin, content-type, accept, authorization
Access-Control-Allow-Credentials : true
Access-Control-Allow-Methods : GET, POST, PUT, DELETE, OPTIONS, HEAD
Access-Control-Max-Age : 1209600
Run Code Online (Sandbox Code Playgroud)

我正在使用像这样的fetch反应:

export function get(path, headers) {
    return fetch(apiUrl + path, {
        "metod" : "GET",
        "headers" : headers,
        "credentials" : "include"
    })
}
Run Code Online (Sandbox Code Playgroud)

我的反应应用正在运行http://localhost:3000.当我登录时,服务器返回Set-Cookie,但cookie不包含在对服务器的任何进一步请求中,除非我尝试再次登录.然后它包含在该特定登录请求中.

有什么建议?

pra*_*Hoc 5

我只想通过这篇文章来分享如何使我的本地开发变得轻松,如果您正在使用create-react-app,只需将主要的API URL代理添加到您的主机中package.js,例如,"proxy": "http://localhost:8080/API" 无需在后端设置CORS。


fon*_*nes 3

因此,我通过使用另一个 stackoverflow 线程和 robertklep 的评论解决了这个问题。如此处所述:“在本地主机上工作时,必须完全省略 cookie 域。”。我实现了robertkleps的想法,但没有设置域。它产生了这样的 Set-Cookie:Set-Cookie:kek=7fukucsuji1n1ddcntc0ri4vi; Version=1; Path=/; Max-Age=100000。这很好用。