gpt4 book ai didi

ajax - 为什么我的cookie没有设置为不同端口的跨域请求

转载 作者:可可西里 更新时间:2023-11-01 17:01:19 26 4
gpt4 key购买 nike

我在 localhost:9000 上运行前端,在 localhost:4567 上运行后端。

 $.post("http://localhost:4567/login",
{
user: u,
password: p,
crossDomain: true,
xhrFields: { withCredentials: true }
},
function (data) {
window.location.replace("app.html")
})
.fail(function (x) {
...
});

登录请求成功,服务器返回

Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:*
Access-Control-Allow-Origin:http://localhost:9000
Access-Control-Request-Method:*
Cache-Control:no-cache, no-store, must-revalidate
Content-Length:1
Content-Type:text/html; charset=UTF-8
Expires:Thu, 01 Jan 1970 00:00:00 GMT
Server:Jetty(9.0.z-SNAPSHOT)
Set-Cookie:JSESSIONID=1bput5i7fmccb13o5pe2rop8w0;Path=/

但是浏览器没有设置 cookie,以后的请求也没有这个 cookie。在 Chrome 和 Firefox 上测试。如果前端和后端或在同一个端口上,它工作正常。那么,如果我在不同的端口上调用后端,为什么没有设置 cookie?

最佳答案

感谢@Kenney 的评论,将 $.post 更改为 $.ajax 是解决方法:

$.ajax(
{
url: "http://localhost:4567/login",
method: "post",
data: { user: u, password: p },
user: u,
password: p,
crossDomain: true,
xhrFields: { withCredentials: true }
}).done(function(data) {
window.location.replace("app.html");
})
.fail(function (x) {
...
});

关于ajax - 为什么我的cookie没有设置为不同端口的跨域请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33270491/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com