探讨一下常见的跨域问题

相信很多童鞋在刚接触前后端分离的时候都会遇到跨域问题,那么跨域问题是怎么产生的呢??怎么来解决跨域问题呢??我们闲话少说,接下来给大家做一波分析。

首先来看一下“跨域”问题的产生的原因,其实“跨域”是浏览器出于安全方面考虑作出的限制,如果不在同一域名下访问接口的话就会产生跨域问题;一般ajax请求如果因为跨域问题报错的话一般如下的报错:

post request is No ‘Access-Control-Allow-Origin’ header is present on

the requested resource.’

如果看到下面的报错,那你肯定是跨域访问了。

那么跨域问题如何避免如何解决呢?其实解决办法也很简单,统一域名就可以了,如果不能统一域名的话也可以用“jsonp”,来进行前后端数据传输,但是“jsonp”只支持get访问,而且据我所知后台还要进行一些处理才行,所以“jsonp”并不是一个好的办法。所以那只好用方法二了,方法二到底是什么呢….就是在服务端做手脚,操作起来也很简单,就是服务端在接口response的时候加上如下的header: 就可以解决跨域问题了。

> header("Access-Control-Allow-Origin:*");
> header("Access-Control-Allow-Methods:POST,GET");

如果以上两招都行不通的话,也可以通过后台比如nodejs代替浏览器发送请求,后台请求不会受到跨域问题限制,因为前面也说了,跨域是浏览器的限制,所以后台请求也是个不错的办法哦!

    原文作者:马明瑞
    原文地址: https://segmentfault.com/a/1190000013873935
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞