ajax跨域问题(一)

No 'Access-Control-Allow-Origin' header is present on the requested resource 。

跨域问题的出现是由于浏览器的同源策略:

同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。

以下记录几种解决方法:

1.@CrossOrign注解,在controller上加上这个注解

2.cors

https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS 附上cors文档

浏览器将CORS请求分成两类:简单请求(simple request)和非简单请求(not-so-simple request)。

只要同时满足以下两大条件,就属于简单请求。
(1) 请求方法是以下三种方法之一:

  • HEAD
  • GET
  • POST

(2)HTTP的头信息不超出以下几种字段:

  • Accept
  • Accept-Language
  • Content-Language
  • Last-Event-ID
  • Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain

简单请求 :只需要在后端代码加上(意味着允许任何域访问,安全性不高,也可以只设置一个域)

responce.header("Access-Control-Allow-Origin","*");

除此之外的非简单请求,

  • 更改服务器端行为以避免预检和/或避免重定向 - 如果您控制服务器,则请求进行
  • 更改请求,使其成为一个不会导致预检的简单请求

3.ngnix解决跨域问题

https://www.cnblogs.com/fuhai0815/p/9792520.html

总的来说解决跨域问题最优的解决方案是通过配置代理服务器,将url转成想要的服务器的URL。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值