最近在做一个项目,后台使用post请求方式,无奈无奈,ajax可是仅支持get方式的,post。。。。
什么是跨域访问?
只要协议,主机,端口,不一致就属于跨域访问,就像localhost访问127.0.0.1也是属于跨域的。
ajax可以解决get方式的跨域访问,只要把dataType改成jsonp就行,而post呢则需要设置contentType: “application/x-www-form-urlencoded”,dataTYPe则不需要设置了,
然后需要后台设置响应头部Access-Control-Allow-Origin:*,但这种方式安全性好像不太好。
W3C推荐了一种新的机制,即跨源资源共享(Cross-Origin Resource Sharing (CORS))。
跨资源共享是通过客户端+服务端协作声明的方式来确保请求安全的,服务端会在http请求头中增加一系列http请求参数,
来限制哪些域的请求和哪些请求类型可以接受,而客户端在发起请求时必须声明自己的源(Orgin),否则服务器将不予处理,如果客户端不作声明,请求甚至会被浏览器直接拦截都到不了服务端。服务端收到HTTP请求后会进行域的比较,只有同域的请求才会处理。