setRequestHeader设置头部信息问题!!

a8562373 2015-01-20 03:13:05
var _xhr = null;
try{
_xhr = new window.XMLHttpRequest(); //创建XML HttpRequest对象
//_xhr.setRequestHeader("Origin", '*');
} catch (ex){
try{
_xhr = new ActiveXObject('Msxml2.XMLHTTP'); //低版本兼容
//_xhr.setRequestHeader("Origin", '*');
} catch(ex){

}
};

_xhr.onreadystatechange = function(){ //事件
try{

if(_xhr.readyState == 4 && _xhr.status == 200){ // readyState从0到4接受完成 并且status 表示http状态 为200者成功 (如在readyState不大于>返回异常)
callback(_xhr.responseText); //接受返回指定响应文本体(字符头部)
}
} catch (ex){

}
};
//open(method, url, async, username, password)
/*
**method请求方式 (get,post,head)
**async为false表示同步
*/
_xhr.open('get', url,true);
_xhr.setRequestHeader("Origin",'*');
_xhr.send(null);


报错:Refused to set unsafe header "Origin" 要怎么设置啊!请求方要求 只要在请求头里面加上 Origin: * 字段, 我们的服务器就会返回Access-Control-Allow-Origin: *
Origin: * 这个“*”可以是任何字段

...全文
9908 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
a8562373 2015-01-21
  • 打赏
  • 举报
回复
是不是服务器那边设置了Access-Control-Allow-Origin:'*'我这边就可以直接请求到了!!
Go 旅城通票 2015-01-20
  • 打赏
  • 举报
回复
你服务器直接设置那个响应头,通过客户端xhr设置行不通,因为浏览器检查跨域请求时会先发送options获取请求头,如果没有Access-Control-Allow-Origin这个就会直接报错了。。不要尝试用xhr头设置响应头,然后服务器判断这个头来设置Access-Control-Allow-Origin响应头,没用
孟子E章 2015-01-20
  • 打赏
  • 举报
回复
这个不用前端设置,服务器设置了就可以跨越的

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧