ajax如何解决跨域请求 Ajax 跨域请求不到的问题

"*");的方式解决跨域问题但解决跨域后仍是接收不到数据(另外,做过测试前后端都在同一个电脑上的话即使chrome控制台有报跨域的错也能收到数据),麻烦谁告知下怎么回倳

另附上chrome的请求信息

在端口14199有一个站点1有一个方法get1,调用结果如下:

在端口10571也有一个站点2前端页面加载完成后点击按钮调用站点1的get1方法会发生错误,这就是跨域访问即一个站点访问另┅个非同源站点

访问结果:被浏览器拒绝,如图

站点2向站点1发送get1请求后站点1返回200 ok说明服务器返回成功,但是控制台报错说明浏览器有限制

发起请求的是站点2(10571),接受请求的是站点1(14199)

站点2加一个img标签并链接到站点1方法get1

两个请求都是站点1的get1方法但是请求类型不一样xhr请求报错,img的没有

  1.浏览器禁止检查

启动cmd进入chrome的位置输入命令

浏览器打开时提示这个说明设置成功

通过站点2访问站点1成功

实际上就是后囼返回的数据改为js代码

前台添加按钮和对应的点击事件

后台添加对应的响应方法

现在发起的请求不再是xhr请求而是script请求

需要改动服务器代码,即站点1方法;只接受get类型请求;发送的不是xhr请求无法使用xhr的特性

  3.被调用方修改代码接受跨域(修改站点1后台代码)

修改站点1的get1方法, 页面不再报错:

允许所有的跨域请求所有的请求方式

后面还有一种就是调用方也就是站点2发出请求时加一个服务器代理比如nginx,然后紦站点2的请求的域名伪装成站点1的域名这样浏览器就不会限制了,也就不存在跨域问题因为这种比较繁琐,这里就不做记录了以后鼡到再来看。

我要回帖

更多关于 ajax如何解决跨域请求 的文章

 

随机推荐