美文网首页
彻底让你明白跨域(服务器端为node)

彻底让你明白跨域(服务器端为node)

作者: 我性本傲 | 来源:发表于2019-08-23 23:01 被阅读0次
  1. 跨域只是针对ajax请求的。
  2. 如果产生跨域,那么将请求不到数据。
  3. 发起ajax请求所依赖的html页面的url地址中的(协议,域名,端口)和(ajax中的目标url协议,域名,端口)必须一模一样,则是同源。
  4. 不符合同源策略的ajax请求都会产生跨域问题。

解决方案

1.jsonp
服务端返回一段js代码,浏览器端用script的src属性请求。
没法处理post请求。
前端封装jsop方法:

function jsop(url,fn){
    var callback = 'callback' ; //这是要给服务器端的函数名
    window[callback] = fn;
    //创建script标签,并设置src属性
    var oScript = document.createElement('script')
    oScript.src= url+ '?callback=' + callback
    document.body.appendChild(oScript)
}
jsop('http://localhost:9000/list',function(data){
  //data
})

服务器node端


node.jpeg

2.使用反向代理解决跨域问题
ajax向本服务器发起请求(肯定不会跨域),由本服务器向目标服务器转发该请求,并得到数据,再返回给客户端。
http.get


WechatIMG9.jpeg WechatIMG10.jpeg WechatIMG11.jpeg

3.跨域资源共享
在9000服务器中加响应头

res.set( 'Access-Control-Allow-Origin', ' * ' )

代表所有的 “权限控制” 都允许通过。
然后就不用在请求7000服务器了,直接可以请求9000服务器。

相关文章

网友评论

      本文标题:彻底让你明白跨域(服务器端为node)

      本文链接:https://www.haomeiwen.com/subject/lvfxectx.html