在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/人工智能  C  HTML/ ajax跨域請求帶上cookie為什么不能用IP?

ajax跨域請求帶上cookie為什么不能用IP?

前端同事訪問自己本地的應(yīng)用 指定了hosts 如

127.0.0.1 my.foo.com

然后訪問 my.foo.com 但是在頁面上通過ajax調(diào)用后端的接口 如調(diào)用我機器上的接口

$.ajax({
    type: "post",
    url: 'http://192.169.0.204:8080/bar/search',
    contentType : "application/json;charset=utf-8",
    dataType: "json",
    ...

因為服務(wù)端需要獲取cookie信息 而這又是跨域調(diào)用 默認(rèn)不帶cookie 需要顯式設(shè)置

client端必須手動設(shè)置xhr.withCredentials=true
server端也必須允許request能攜帶認(rèn)證信息(即response header中包含Access-Control-Allow-Credentials:true)
server端一定不能將Access-Control-Allow-Origin設(shè)置為*,而必須設(shè)置為請求頁面的域名。
參考: https://segmentfault.com/a/11...

前端和服務(wù)端都按上述要求設(shè)置了 但是服務(wù)端還是接收不到cookie 最后前端同事將我的IP地址也改成hosts 才終于成功了

127.0.0.1 my.foo.com
192.168.0.204 back.foo.com

ajax請求中的地址改成

url: 'http://back.foo.com:8080/bar/search'

我有點不解 都按要求配置了 為什么非得使用hosts呢?用IP為什么就不行呢?

回答
編輯回答
悶油瓶

因為cookie的作用僅在當(dāng)前域名下,跨域就不能用了。。要不然baidu.com設(shè)置的cookie,別的域名或ip還能用還能繼續(xù)用,那不是亂了套了

2017年3月4日 23:29
編輯回答
陌顏

因為跨域的域指的和頁面的域不同,如果頁面使用IP,ajax也使用相同的IP,就不會跨域了

2018年3月21日 14:40