目录跨域的概述区别同源与不同源同源策略有什么用?ajax跨域解决方案方案一、设置响应头方案二、JSONp方案三、代理机制(Httpclient)总结跨域的概述 跨域是指从一个域名的网
下面是使用AJAX发送请求跨域访问资源出现的问题:请求的资源上不存在“访问控制允许源”标头:(就是被同源策略阻止了)
区分同源和不同源的三要素:
协议域名端口
协议一致,域名一致,端口号一致,三要素都要一致,才是同源,其它一律都是不同源。
如果你刚刚在网银输入账号密码,查看了自己还有一万 元块钱,紧接着访问一些不规矩的网站,这个网站可以访问刚刚的网银站点,并且获取账号密码,那后果可想而知。所以,从安全的角度来讲,同源策略是有利于保护网站信息的。
有一些情况下,我们是需要使用AJAX进行跨域访问的。比如某公司的A页面(
a.aresourse.com
)有可能需要获取B页面(b.bresourse.com
)。
核心原理:跨域访问的资源允许你跨域访问。(被调用方允许你可跨域访问)
实现:
response.setHeader("Access-Control-Allow-Origin","http://localhost:8080/ajax/ajax7.html");//允许某个
response.setHeader("Access-Control-Allow-Origin","*");//允许所有
jsonp:json with padding
jsonp
不是一个真正的AJAX
请求。只不过可以完成AJAX
的局部刷新效果。可以说jsonp
是一种类AJAX
请求的机制。
jsonp
可以解决跨域问题。
注意:jsonp
解决跨域的时候,只支持GET
请求。不支持post
请求。这是因为jsonp
本就是动态的创建script
标签从而达到跨域的效果。
下面是动态创建的代码:
效果展示:
Jquery
封装了jsonp
,也就是说可以使用jQuery
库去进行编写jsonp
代码,方便。
核心代码如下:
$.ajax({
type:"GET",
url:"跨域的url",
dataType:"jsonp", //指定数据类型
jsonp:"fun", //指定参数名(不设置的时候,默认是”callback“)
jsonpCallback:"sayHello" //指定回调函数的名字,不设置的时候,jQuery会自动生成一个随机的回调函数,
//并且这个回调函数还会自动调用success的回调函数
})
“调用方”解决跨域的问题是这个思路的:让发送出去的请求代理成是本域的。
如果资源是本域的,那就侧面地进行了跨域。
使用Java程序怎么去发送get/post
请求呢?【GET和POST请求就是HTTP请求】
jdk
内置的api
(java.net.URL....
),这些API
是可以发送HTTP
请求的。apache
的httpclient
组件。(httpclient
组件是开源免费的,可以直接用)。到此这篇关于AJAX的跨域问题解决的文章就介绍到这了,更多相关AJAX跨域问题内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: AJAX的跨域问题解决方案
本文链接: https://www.lsjlt.com/news/176135.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0