AJAX不能直接访问别人的服务器,因为浏览器的同源策略严格限制跨域请求,但通过CORS、JSONP、代理服务器等机制可以实现安全的跨域访问。

为什么AJAX默认无法访问跨域服务器
同源策略的底层逻辑
同源策略要求协议、域名、端口三者完全一致,AJAX请求才会被浏览器允许读取响应,2026年W3C最新规范依然坚持这一原则,任何跨域请求若未通过授权,响应数据会被浏览器拦截,这种机制防止了恶意网站窃取用户在其他域下的敏感信息。
浏览器拦截过程
跨域请求发出后,服务器正常处理并返回数据,但浏览器会检查响应头中的`Access-Control-Allow-Origin`。
若该头缺失或值与请求源不匹配,浏览器直接抛出CORS错误,并将响应体丢弃。
对于复杂请求,浏览器先发送OPTIONS预检请求,验证服务器是否允许实际请求,2026年主流浏览器对预检请求的缓存时间(`Access-Control-Max-Age`)支持良好,可显著减少重复验证。
2026年主流的跨域访问方案
CORS(跨域资源共享)
CORS已成为跨域请求的事实标准,支持所有HTTP方法,安全配置灵活,根据2026年MDN开发者调查,超过90%的公开API已支持CORS。
简单请求:仅GET/POST/HEAD,且Content-Type为`application/x-www-form-urlencoded`、`multipart/form-data`或`text/plain`时,浏览器直接发送请求。
预检请求:使用PUT/DELETE或自定义头时,浏览器先发送OPTIONS请求,服务器返回允许的规则,浏览器再发送实际请求。
安全配置:必须限定`Access-Control-Allow-Origin`为具体域名,禁止使用通配符`*`处理敏感数据,很多开发者关心ajax跨域访问安全吗,只要遵循最小权限原则,CORS比任何旧方案都安全。
JSONP(仅支持GET)
JSONP利用`