场景:
前后端分离,前端Vue+后端Tornado,那么需要支持跨域以及Options请求
问题:
1. $.ajax
设置数据类型 applicaiton/json
之后,服务器端拿不到数据
2. jquery ajax请求成功,返回了数据,但是不进success的问题
3. ajax并未获取到后台的返回值
什么事跨域请求:
出于安全原因,浏览器对页面中的ajax请求(XMLHTTPRequest)有同源策略的限制。
如果两个页面的协议、域名和端口是完全相同的,那么它们就是同源的。当前加载页面只能发出同源的ajax请求。
在使用Ajax跨域请求时,如果设置Header的ContentType为application/json,会分两次发送请求。
第一次先发送Method为OPTIONS的请求到服务器,这个请求会询问服务器支持哪些请求方法(GET,POST等)
解决方法:
1. 前后端代码放在同域下面,域名、ip、端口相同
2.或者,服务端添加代码:
详细见:
https://github.com/gl-coding/baseApps/blob/master/cs/ajax_server.py