微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ajax跨域问题及相关解决方案

1 什么是跨域

所谓的跨域是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。

所谓同源是指,域名,协议,端口均相同;

2 什么时候会存在跨域的问题

页面访问不同源的脚本接口数据等,如我们平时前端页面后台发起的请求时就会造成跨域的问题,跨域问题是针对xhr请求的

3 Ajax 无论原生还是jquery的$.ajax或angular的$http等都是利用XMLHttpRequest(下简称XHR)对象,就一定存在跨域的问题

Ajax:“Asynchronous JavaScript and XML”,翻译过来就是异步JavaScript和XML。

Ajax是一种用于创建快速动态网页的技术,通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新。

意味这可以再不重新加载整个网页的情况下,对网页的某部分进行更新。

4如何解决跨域的问题

方案一 :利用ajax自身带的jsonp请求
方案二:利用node做js 和 后台 的中间层 利用node无跨越限制将接口数据从后台请求来,在利用js的ajax同源调用自己的node接口,这样就解决了跨域的问题;此处代码不详细介绍了;
方案三:利用Nginx,不仅可以做静态服务器,还可以通过请求代理解决跨域的问题;
       #Nginx 配置
       #项目页面
        location /appliance{
            alias   /work/项目文件名/dist;  
            autoindex on;
            #一般dist下面存在index.html文件,否则不用上面的而用下面的
            index   name.html;
        }
        #项目接口
        location /interfaceName/{
           proxy_pass  http://域名/interfaceName/;
          #或者用下面的本机IP进行与后台的本地调试  
          #  proxy_pass http://本机IP地址/interfaceName/;
        }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐