最近工作上出现了跨域问题,我尝试使用的几种方法进行记录。
关于web端跨域问题解决
1.在接口服务端修改响应头添加
res.header('Acess-Control-Allow-Origin','*')
使用的前提:可以修改请求头
不能使用resp更改请求头,因为这要求已经结束 - 你必须使用res为(使用您的变量名)。
这是因为resp是您从某个外部服务获得的响应,而res是您作为对您的服务从其他人获得的请求的响应发送的响应。
换句话说,当您充当客户时,您正在提出请求并获得响应。响应标题已设置,您无法更改它们。但是,当您充当服务器时,您会收到请求并发送一个响应 - 包含您可以自定义的标题和正文
2.jsonp
只有通过ajax才会出现跨域问题
app2.get("/",function(req,res){
var funcname = req.query.callback ;
res.send(funcname+"('你好')")
})
在index.html中
<script>
function f(data){ alert(data) }
</script>
<script src="http://*******:****?callback = f"></script>
3.Nginx代理方式更加普遍相对来说,可以搭建一个http服务器,一个nginx服务器,配置好proxy把测试的页面放到nginx相关目录下即可;
具体看网址:https://www.bili