AJAX跨域资源访问CORS问题

  通常,AJAX异步请求只允许向同源服务器请求数据的。同源简单描述,就是HTML来源哪台服务器,HTML中的AJAX代码请求哪台服务器。

  同源就是“协议://域名:端口”一模一样,条件非常苛刻!哪怕localhost和127.0.0.1目标服务器是一台,也是不同源。

  一般人都有一个误解,一旦跨域,以为浏览器要么没有发送请求、服务器要么没有作出响应。其实,请求响应都是正常的,只不过数据被浏览器过滤掉了,到不了你的HTML页面。

  事实上,浏览器也非常智能。自动检测到发送的是一个跨域请求,自动携带一个Origin请求头,将自己的“协议://域名:端口”上报给服务器,允许还是不允许就看服务器的了?

  

  服务器,通过一下就可以了,有两个响应头需要回应一下。

  1)Access-Control-Allow-Origin,代表允许谁来访问。*代表所有,http://localhost:3000代表刚才的Origin指的那一台。

  2)Access-Control-Allow-Methods,代表允许请求方式来访问。GET,POST代表这两种方式都可以。

  

 

  

posted @ 2022-11-25 11:37  中才德创  阅读(126)  评论(0)    收藏  举报