一、如何解决跨域的问题

    跨域一般都需要后端参与,除非数据接口为jsonp格式

    1.后端代理

    因为服务器获取数据不存在跨域,而我们前端与后端在同一个服务器的端口下工作,所以我们之间获取数据也不存在跨域,那么我们就可以通过公司后端。让后端获取端口数据后我们在同域服务器下获取数据。

    2.cors

    CORS全称是“跨域资源共享”,它允许浏览器向跨域服务器发出XMLHttpRequest请求,从而克服了Ajax只能同源使用的限制。

    需要提供接口的服务器后端在接口源代码中添加下面两句代码:

    // header(‘Access-Control-Allow-Origin:‘)//允许跨域访问的域名,表示所有域名。 // header(‘Access-Control-Allow-Method:POST,GET’)//允许跨域访问的请求方式。

    3.JSONP格式的数据(JSON with Padding)

    JSONP是一种数据格式,将json格式的数据作为实参填充给函数,利用函数获取数据。

    其实就是别人写好了函数名,再将数据当作实参放进了函数中,我们想要获取对应的数据只需要创建一个同样函数名的函数,在对实参做出操作即可。例如:

    别人接口网页中包含的数据格式为:

    fn(数据)

    我们想要获取的话:

    function fn(data) {};

    至于我们要如何获取别人给我们的数据,我们肯定不可能照着人家的数据直接复制,这样太麻烦了,我们可以利用script标签的src属性可以引入任意拓展名文件这一特性,将我们想要获取数据的网址作为src的地址,将其中的jsonp数据作为一条JS代码引入到我们的文档中,这样就相当于将别人的jsonp数据变成了一个带参数的执行函数,而我们需要的数据就是它的参数,我们只要提前在我们的函数中写上要对参数进行的操作。