js跨域的各种方法总结。

前几天电话面试被问到了跨域问题,由于之前的工作没怎么接触到跨域。所以答的很烂。今天特意总结了一下。

1:josnP:优点:兼容性好点。缺点:值支持get请求。实现方式:script请求跨域的地址并用问好传参的形式传过去回到函数以及参数例如

<script src = 'http://localhost:3001/ajax/deal?callback=jsonpCallback&name=chiaki&id=3001&_=1473164876032'></script>

2:cors:优点:支持get,post等等。缺点:兼容性差一些,只支持ie10以上或者标准流浏览器。实现方式:主要服务器进行配置。

Access-Control-Allow-Origin: http://api.bob.com

通过这个属性来控制哪些域可以访问当前域。
3:ngix来进行跨域:这个 没实际用过不敢多说http://www.cnblogs.com/gabrielchen/p/5066120.html。附上一条链接。大家进行参考。

4:html5中的postMessage。这个当前窗口要通过iframe去当目标域的某个窗口然后通过otherWindow.postMesage(data,'http://www.a.com')进行传递,然后目标窗口通过message事件进行接收

window.addEventListener("message", receiveMessage, false);

function receiveMessage(event)
{
  // For Chrome, the origin property is in the event.originalEvent
  // object.
  var origin = event.origin || event.originalEvent.origin; 
  if (origin !== "http://example.org:8080")
    return;

  // ...
}

 这个属性目前还不是很常用,工作中也没遇到过。等待测试。

原文地址:https://www.cnblogs.com/hjdjs/p/7492601.html