Java Web程序员面试笔试宝典
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

真题10 如何解决AJAX跨域问题?

【出现频率】★★★★☆ 【学习难度】★★★☆☆

答案:首先介绍一下什么是跨域,协议、域名、端口都相同才是同域,否则就是跨域。解决AJAX跨域问题有以下方式。

1)JSONP方式,服务器不允许AJAX跨域获取数据,但是可以跨域获取文件内容。所以基于这一点,可以动态创建<script>标签,使用标签的src属性访问JS文件的形式获取JS脚本,并且这个JS脚本中的内容是函数调用,该函数调用的参数是服务器返回的数据,为了获取这里的参数数据,需要事先在页面中定义回调函数,在回调函数中处理服务器返回的数据。

2)CORS方式,在服务端配置可跨域。需要后台设置参数,见表1-8。

表1-8 后台设置参数

3)前端代理方式,AJAX请求的是本地接口,本地接口接收到请求后向实际的接口请求数据,然后再将信息返回给前端。