🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ## 跨域 前端 ajax 访问时,浏览器有同源策略 跨域条件:协议、域名、端口,有一个不同就算跨域 ### 可以跨域的三个标签 1. `<img src> ` 3. `<link href=''>` 4. `<srcipt href=''>` `<img>`用于打点统计,统计网站可能是其他域 `<link>< script>`可以使用CDN,CDN的也是其他域 `< script>`可以用于 JSONP ### JSONP 实现原理 - 加载`http://coding.m.mooc.com/classindex.html` - 不一定服务器端真正有一个 classindex. htm文件 - 报务器可以根据请求,动态生成一个文件,返回 - 同理于< script src="http;/ coding.m.imooccom/ api.js"> ``` <script> window.callback=function(data){ //这是我们跨域得到的信息 console.log(data) } </script> <script scr='http://coding.m.imooc.com/api.js></script> <!-- 以上返回 callback({x:100,y:200}) 括号中的 json 可自己更改--> ``` ### 通过服务器设置解决跨域 ```php //注意:不同后端语言的写法可能不一样 //第二个参数填写允许跨域的域名称,不建议直接写"*k response. setheader ("access-control-allow-origin","http://a.com,http://bcom") response. setheader ("access-control-allow-headers","x-requested-with"); response. setheader ("access-control-allow-methods","PUT, POST, GET, DELETE, PTIONS") //接收跨域的 cookie response. setheader ("access-control-allow-credentials","true ```