要求兼容浏览器 Opera9.64+, 不需要ms的js方法, setRequestHeader两次什么的都试过了, 不管事.
已测:
浏览器已有cookie : 'x=y'
测试预设cookie : 'a=1;b2;c=3'xhr.setRequestHeader('Cookie', $cookie)无效
xhr.setRequestHeader('Cookie', [$cookie])无效
xhr.setRequestHeader('Cookie', {$cookie})无效
xhr.setRequestHeader('Cookie', $a);xhr.setRequestHeader('Cookie', $b);xhr.setRequestHeader('Cookie', $c)无效默认带出去的还是页面自己写到浏览器上的cookie(x=y)啊...谁有啥办法可以把自己预设cookie加到post里啊...
已测:
浏览器已有cookie : 'x=y'
测试预设cookie : 'a=1;b2;c=3'xhr.setRequestHeader('Cookie', $cookie)无效
xhr.setRequestHeader('Cookie', [$cookie])无效
xhr.setRequestHeader('Cookie', {$cookie})无效
xhr.setRequestHeader('Cookie', $a);xhr.setRequestHeader('Cookie', $b);xhr.setRequestHeader('Cookie', $c)无效默认带出去的还是页面自己写到浏览器上的cookie(x=y)啊...谁有啥办法可以把自己预设cookie加到post里啊...
是关于javascript和xhr本身的问题...
注释掉的两行均无效...xhr请求貌似会自动带出页面cookie而且不受setRequestHeader控制,
现在我只能先用js设置cookie后再进行xhr,,我想寻找一种不需要写cookie就能在请求头加上指定cookie的办法...
(写cookie的话要写硬盘上的cookie4.dat...这个文件位置是不可变的..所以不停的写这个文件太费硬盘了...= =|")function $xPost(action, data, ua, refer, cookie) {
if (window.XMLHttpRequest){
var xhr = new XMLHttpRequest();
} else if (window.ActiveXObject){
var xhr = new ActiveXObject('Microsoft.XMLHTTP');
} else {
return null;
}
if (action=='') action=location.href;
if (data=='' || data=='undefined') data=null;
xhr.open('POST', action, true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
if ( ua!='' && ua!='undefined' && ua!=null ){xhr.setRequestHeader('User-Agent', ua);}
if ( refer!='' && refer!='undefined' && refer!=null ){xhr.setRequestHeader('Referer', refer);}
if ( cookie!='' && cookie!='undefined' && cookie!=null ){
//xhr.setRequestHeader('Cookie', cookie);
//var cookies=cookie.split(';'); for (var i=0; i<cookies.length; i++){xhr.setRequestHeader('Cookie', cookies[i]);};
var cookies=cookie.split(';'); for (var i=0; i<cookies.length; i++){document.cookie=cookies[i];};
}
xhr.send(data);
}
document.cookie='c=3';xhr.send(null);
看来要研究下用priv0x..之类的试试能不能重写请求头插入cookie了...