跨域问题产生的原因是浏览器的同源策略限制。
同源策略是指协议相同、域名相同、端口相同的网页之间可以相互访问,否则会被浏览器阻止访问。这是为了保护用户信息安全,防止恶意网站窃取数据。但是,在某些情况下,我们需要跨域访问数据,比如为了实现前后端分离、分布式架构等,这时就需要采取一些方法来绕过同源策略的限制,如使用CORS、JSONP等技术。
浏览器发出204请求的原因可能有以下两种:
- 跨域问题:浏览器在处理跨域访问的请求时,如果判断请求为复杂请求,则会先向服务器发送一条预检请求(OPTIONS),根据服务器返回的内容判断服务器是否允许该请求访问,这是不可避免的。
- 数据传输:对于一些提交到服务器处理的数据,只需要返回是否成功的情况下,可以考虑用状态码204来作为返回信息,从而省略多余的数据传输。使用ajax时,当只需要知道响应成功或失败的情况,可以用204来代替200。