• 关于跨域问题的解决办法


    跨域是指 在不同的域之间进行数据传输,只要协议、域名、端口有任何一个不同,都被当作是不同的域。
    解决跨域的方法:
    1.JSONP: 利用script的src 可以在不同域之间请求数据的特点,向某一地址发请求, 需要后台返回一个能够执行的js文件,


    如上图,这里利用jquery.ajax的jsonp 后台返回的是一个函数的调用,函数的声明是ajax中的success

    我们也可以自己写一个script 利用上面的方式


    后台返回的是一个 data的函数调用, 声明在前台页面中. 这些都需要后台的配合,因为返回的数据前面 需要加一下函数名,必须和后台约定好


    2.window.name来进行跨域:window对象有个name属性,该属性有个特征:即在一个窗口(window)的生命周期内,窗口载入的所有的页面都是共享一个window.name的,每个页面对window.name都有读写的权限,window.name是持久存在一个窗口载入过的所有页面中的,并不会因新页面的载入而进行重置。

    3.设置代理:在web服务器上封装第三方服务,然后给自己同源的web页面调用

    我用node搭建了一个代理服务器,在这里使用了http-proxy-middleware 这个中间件 非常好用。 只需要设置请求然后就直接可以使用,如图


    只需要在页面中发送请求,即可用代理服务器代理到请求的服务器,拿到数据。

    4. 还有一种postMessage ,一种HTML5新增方法,现在浏览器及IE8+支持,简单易用高大上。但是 我不是很喜欢用iframe。也不知道问什么,天生的排斥。 所以在这里推荐大神写的http://www.cnblogs.com/dolphinX/p/3464056.html 

    用IE6的以后吃方便面都没有调料包!!!
  • 相关阅读:
    超简单开发自己的php框架一点都不难
    .htaccess技巧: URL重写(Rewrite)与重定向
    htaccess附录:正则表达式、重定向代码
    编写自己的PHP MVC框架笔记
    微信企业号-上传、获取临时素材文件
    练习6.43:、6.45、6.46
    关于函数的特殊用途的语言特性的注意事项
    练习6.40、6.41
    练习6.39
    练习6.30、6.31、6.32
  • 原文地址:https://www.cnblogs.com/H5C3XXN/p/6253433.html
Copyright © 2020-2023  润新知