jsp网站源码 怎么用,苏州设计公司,文案短句干净治愈,做网站多前言前俩篇文章#xff0c;我们从概念#xff0c;聊到了服务器中设计的内容。不知道大家是否觉得通俗易懂呢#xff1f;接下来的内容则有些偏向前端部分。正文三、Cookie传递3.1、通过URL参数实现跨域信息传递我们要在A域实现写入token到B域#xff0c;需要在A域设计一个se…前言前俩篇文章我们从概念聊到了服务器中设计的内容。不知道大家是否觉得通俗易懂呢接下来的内容则有些偏向前端部分。正文三、Cookie传递3.1、通过URL参数实现跨域信息传递我们要在A域实现写入token到B域需要在A域设计一个servlet接收请求代码由a域发起请求请求地址http://www.a.com/tg?fromhttp://www.b.com/set_cookie, 请求后该Servlet会获取from参数的值并生成token最后让客户端重定向到http://www.b.com/set_cookie?cnametokencval123456然后B域的Servlet(set_cookie)获取Url参数写入Cookie到客户端代码这时候再查看B域下的Cookie就可以发现(token123456)已经被写入到浏览器。3.2、读取其它域的Cookie利用script标签利用script标签执行另一个域实现的读取cookie方法script标签返回结果将是变量定义形式的JS代码每一个变量表示一个cookie项这些代码加载后此页面后续JS代码可以直接在script脚本中读取已定义的变量值即各cookie值。HTML页面读取B域的url为/read_cookies的Servlet是如何实现的如图首先我们先在request中获取cookie数组然后for循环遍历拼接为类似var tokentest123;的字符串。最重要的是设置ContentType为application/javascript代码如下四跨域Ajax请求4.1、CORS简介出于安全原因浏览器限制从脚本内发起的跨源HTTP请求。 例如XMLHttpRequest和Fetch API遵循同源策略。 这意味着使用这些API的Web应用程序只能从加载应用程序的同一个域请求HTTP资源除非使用CORS头文件。跨域资源共享( CORS )机制允许 Web 应用服务器进行跨域访问控制从而使跨域数据传输得以安全进行。浏览器支持在 API 容器中(例如 XMLHttpRequest 或 Fetch )使用 CORS以降低跨域 HTTP 请求所带来的风险。GET跨域请求原理当客户端浏览器发起一个跨域的HTTP请求浏览器经过请求响应如果没有看到Access-Control-Allow-Origin的header头部会认为你的请求是不合法的。换句话说我们只要在被请求的服务器上设置这个头部浏览器就会允许我们进行请求。解决方法对于简单的请求我们直接在服务端 设置就可以了。如图只要请求的地址是www.a.com就会被浏览器允许跨域。如果想要允许对于多个来源可以用,号进行隔开如果想要允许所有来源设置为*就可以不过建议不要使用这样会造成安全隐患。对于复杂的请求比如POST或者加入了自定义header头部上面的方法就不适用了。下面继续看。CORS流程请求发起时,浏览器先判断当前是否是跨域的AJAX;如果是,判断是否是普通类型请求(GET类型,无自定义头数据);普通请求,直接发起GET到服务端,在响应头中寻找 Access-Contro-Alow- Origin,如果有且允许,处理响应结果;不是普通请求(非GET类型,或有自定义头), 先 PreFlight(即发起一个 method OPTIONS)的请求,要求返回 Access-Control-Allow- Methods和 Access-Control-Allow- Headers, 内容体为空PreFlight正确执行后, 再发起GET请求, 获得响应结果, 并处理结果.实现归根到我们的代码中的实现只需要在servlet中定义options请求的处理方法即可。如图注意Access-Control-Allow-Origin是必需的。尾声关于单点登录的部分差不多到此就准备结束了希望可以给各位看到的小伙伴带来一丝丝的收获。当然我也是刚刚了解SSO的内容所以内容相对比较浅如果各位看官有更好的想法或者更厉害的做法欢迎评论区留言、讨论。