跨域

114 阅读2分钟

juejin.cn/post/684490…

***node-learn和node-react-fe项目有结合例子

1.CORS,全称Cross-Origin Resource Sharing跨域资源共享   服务端设置Access-Control-Allow-Origin (包含简单请求和复杂请求)

2.JSONP:json with padding

3.websocket

4.node中间件代理

5.nginx反向代理

6.iframe

总结

  • CORS支持所有类型的HTTP请求,是跨域HTTP请求的根本解决方案
  • JSONP只支持GET请求,JSONP的优势在于支持老式浏览器,以及可以向不支持CORS的网站请求数据。缺点是仅支持get方法具有局限性,不安全可能会遭受XSS攻击。
  • 不管是Node中间件代理还是nginx反向代理,主要是通过同源策略对服务器不加限制。
  • 日常工作中,用得比较多的跨域方案是cors和nginx反向代理

这里你或许有个疑问:请求跨域了,那么请求到底发出去没有?

跨域并不是请求发不出去,请求能发出去,服务端能收到请求并正常返回结果,只是结果被浏览器拦截了。

HTTP请求中的Form Data与Request Payload的区别

www.jianshu.com/p/91fd30051…

常用的Content-Type有如下:

text/html, text/plain, text/css, text/javascript, image/jpeg, image/png, image/gif, application/x-www-form-urlencoded, multipart/form-data, application/json, application/xml

其中:text/html, text/plain, text/css, text/javascript, image/jpeg, image/png, image/gif, 都是常见的页面资源类型。

application/x-www-form-urlencoded, multipart/form-data, application/json, application/xml 这四个是ajax的请求,表单提交或上传文件的常用的资源类型。

text/html和text/plain的区别

1、text/html的意思是将文件的content-type设置为text/html的形式,浏览器在获取到这种文件时会自动调用html的解析器对文件进行相应的处理。

2、text/plain的意思是将文件设置为纯文本的形式,浏览器在获取到这种文件时并不会对其进行处理。