跨域的几种方式

一:跨域资源共享CORS

    CORS是w3c标准,它允许浏览器向其他服务器发起xmlhttprequest请求。

    CORS需要浏览器和服务器共同支持,毕竟xmlhttprequest是浏览器提供的api,浏览器不支持发不了请求。

    1.对于一个简单的CORS请求,浏览器会直接在请求头里面添加一个Origin:http://localhost:63342,请求的协议,域名,端口,这个步骤是浏览器自动完成的。

    2.外部服务器那边会检查,当前请求origin是否可以访问服务器


Access-Control-Allow-Origin设置了*表示可以是任何域名,当前注视掉了,所以浏览器会抛出一个错误


服务器拒接了这一次请求。

另外cors默认是不发送cookie


里面没有cookie这个选项

如果需要发生cookie,需要另外设置

1,在服务端添加Access-Control-Allow-Credentials:true

2,在xmlhttprequest请求端时候设置xhr.withCredentials:true

这样浏览器发送请求端时候会带上cookie


二JSONP的请求

    jsonp是利用了script标签来请求其他服务器的数据。

    这个也是需要前后端配合

    前端这边我手写了一个


对应返回后的数据


第一张图是请求的是标签script,第二张图是标签里面带来的数据,就是callback参数后面的回调函数包裹着需要的数据。

合起来,其实实际上就是html页面引入了一个script,只不过这个script有些特殊,里面是一个函数调用的方法。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 跨域以及跨域的几种方式 讲解跨域之前我们先来看看什么是同源策略 什么是同源策略 通常来说,浏览器出于安全方面的考虑...
    尾巴尾巴尾巴阅读 1,618评论 0 1
  • 1: 什么是同源策略 同源策略是一种安全策略,所有的浏览器都实行这个政策。例如:A网页设置的Cookie,B网页是...
    向前冲冲的蜗牛阅读 273评论 0 0
  • 同源策略 浏览器对不同源的脚本或者文本的访问方式进行的限制,就是一种浏览器的安全机制。 同源:相同的协议、域名、端...
    Mr无愧于心阅读 1,014评论 0 1
  • 1. 什么是跨域 跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScri...
    cbw100阅读 6,373评论 2 86
  • 前端开发中,跨域使我们经常遇到的一个问题,也是面试中经常被问到的一些问题,所以,这里,我们做个总结。小小问题,不足...
    Nealyang阅读 481评论 0 0