开发小伙儿遇到的问题:CORS post提交无法获取数据,大神有知道原因的吗

这个叫做 preflighted requests 。“Unlike simple requests (discussed above), "preflighted" requests first send an HTTP request by the OPTIONS method to the resource on the other domain, in order to determine whether the actual request is safe to send.”学会用 Google 搜索。https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
■网友
会有两次请求,一次是Options, 一次是Post。你在chrome的network里面把两次请求都看看,是不是都是200。如果都是,说明CORS没有问题,是其他的问题。如果不是200,则是CORS的问题。参考文献有javascript - Cross domain POST query using Cross-Origin Resource Sharing getting no data back
■网友
cors一般会首先发送一次OPTIONS请求,然后再发真实请求,需要在OPTIONS请求里做一些配置,这一步做了吗?
■网友
这个看确实后台设置了跨域处理,那很有可能和post的有些参数问题有关,比如dataType等等,如果后端返回的不是json数据而你设置dataType为json的话也会报这样的错误,这样get可以获取到数据。
■网友
【开发小伙儿遇到的问题:CORS post提交无法获取数据,大神有知道原因的吗】 POST 属于非简单请求,会先发 OPTIONS 请求,在 CORS 里叫做 preflight。服务器需要正确响应这个请求。写过一篇关于 preflight 的文章可以参考:http://harttle.com/2016/12/30/cors-preflight.html


    推荐阅读