多语言展示
当前在线:452今日阅读:2今日分享:38

Ajax跨域请求本地json出现跨域的问题

为什么会出现跨域的问题? 因为浏览器本身存在同源政策,即协议,域名,端口相同,视为同一个域(源);下面我分步描述一下
工具/原料
1

火狐浏览器

2

goole浏览器

方法/步骤
2

那什么是跨域呢?ajax请求一个目标地址为非本域(协议,域名,端口任意一个不同)的web资源,就是跨域。谷歌浏览器出现跨域问题,会报错,数据不会在控制台打印出来

3

然后我用了火狐浏览器,虽然也有警告提示,但是我的json数据是能被获取的火狐为了方便是允许跨域的(虽然这样很不安全)

4

现在的问题就很明显了,谷歌浏览器不允许跨域访问,我找到几个解决的办法

5

上一步骤的第二种和第三种就不说了,现在讲讲第一种使用JSONP方法跨域 它的基本思想是,网页通过添加一个《script》元素,向服务器请求JSON数据,这种做法不受同源政策限制;服务器收到请求后,将数据放在一个指定名字的回调函数里传回来。首先,网页动态插入《script》元素,由它向跨源网址发出请求 客户端方法:

6

jQuery 方法:

注意事项

以上的两种方法需要配合后端完成,服务器收到请求后,将数据放在一个指定名字的回调函数里传回来。前端即可以拿到数据了。

推荐信息