javascript-为何二级域名下cookie可以获取,却不能使用ajax自动发回,cookie不能跨域?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-为何二级域名下cookie可以获取,却不能使用ajax自动发回,cookie不能跨域?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3156字,纯文字阅读大概需要5分钟。
内容图文
![javascript-为何二级域名下cookie可以获取,却不能使用ajax自动发回,cookie不能跨域?](/upload/InfoBanner/zyjiaocheng/153/c5357c3b805945778756b56234fc09c1.jpg)
机器A局域网地址:192.168.9.8
机器B局域网地址:192.168.9.9
分别配置机器A、B的hosts地址:
配置机器A的地址:192.168.9.8 --> a.site.com
配置机器B的地址:192.168.9.9 --> b.site.com
机器A为前端js代码 ,启动了服务,并在浏览器上请求 机器B(代表服务器端)
的第一个地址http://b.site.com:8080/login/... , 请求的同时 服务器端 注入了cookie,
设置 cookie 的key为‘site’,value为‘date’,doman 为 .site.com, path 为 /
,然后在浏览器上开新页面并在新页面请求 http://a.site.com:8080/index , 通过chrome控制台可以看到
http://b.site.com:8080/
注入的cookie,但是.......通过ajax走接口的时候,cookie并没有出现在请求头,试了多种方式,get、post、异步、同步都不行。最后使用了jsonp的方式,cookie出现了
不好用的代码如下:
$("a").click(function(event) {
$.ajax({
url: 'http://b.site.com:8080/test/test.htm',
type: 'post',
dataType: 'json',
data: {'token': 'value'},
})
.done(function() {
console.log("success");
})
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});
});
好用的代码如下:
function flightHandler(data) {
console.log(data);
// body...
};
$("a").click(function(event) {
$.ajax({
type: "get",
url: "http://b.site.com:8080/test/test.htm",
dataType: "jsonp",
jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
jsonpCallback:"flightHandler",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据
success: function(data){
console.log(data);
},
error: function(){
alert('fail');
}
});
});
请大神们帮忙看看,如能解惑,万分感谢
回复内容:
情景复现流程:
机器A局域网地址:192.168.9.8
机器B局域网地址:192.168.9.9
分别配置机器A、B的hosts地址:
配置机器A的地址:192.168.9.8 --> a.site.com
配置机器B的地址:192.168.9.9 --> b.site.com
机器A为前端js代码 ,启动了服务,并在浏览器上请求 机器B(代表服务器端)
的第一个地址http://b.site.com:8080/login/... , 请求的同时 服务器端 注入了cookie,
设置 cookie 的key为‘site’,value为‘date’,doman 为 .site.com, path 为 /
,然后在浏览器上开新页面并在新页面请求 http://a.site.com:8080/index , 通过chrome控制台可以看到
http://b.site.com:8080/
注入的cookie,但是.......通过ajax走接口的时候,cookie并没有出现在请求头,试了多种方式,get、post、异步、同步都不行。最后使用了jsonp的方式,cookie出现了
不好用的代码如下:
$("a").click(function(event) {
$.ajax({
url: 'http://b.site.com:8080/test/test.htm',
type: 'post',
dataType: 'json',
data: {'token': 'value'},
})
.done(function() {
console.log("success");
})
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});
});
好用的代码如下:
function flightHandler(data) {
console.log(data);
// body...
};
$("a").click(function(event) {
$.ajax({
type: "get",
url: "http://b.site.com:8080/test/test.htm",
dataType: "jsonp",
jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
jsonpCallback:"flightHandler",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据
success: function(data){
console.log(data);
},
error: function(){
alert('fail');
}
});
});
请大神们帮忙看看,如能解惑,万分感谢
withCredentials=true,并且保证服务端允许跨域,具体可以参考cors
domain不是你说是什么就是什么。cookie的domain和ajax的domain不是一回事
内容总结
以上是互联网集市为您收集整理的javascript-为何二级域名下cookie可以获取,却不能使用ajax自动发回,cookie不能跨域?全部内容,希望文章能够帮你解决javascript-为何二级域名下cookie可以获取,却不能使用ajax自动发回,cookie不能跨域?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。