ajax No 'Access-Control-Allow-Origin' header is present on the requested resource.

时间: 2023-11-04 08:00:36 浏览: 129
这个错误提示是由于跨域访问引起的。当使用 AJAX 发起跨域请求时,浏览器会发送一个 OPTIONS 请求给服务器,以检查服务器是否允许该跨域请求。如果服务器没有设置合适的响应头,浏览器就会报这个错误。 解决这个问题的方法有两种: 1. 在服务器端设置响应头 在服务器端设置响应头 "Access-Control-Allow-Origin",并将其值设置为允许访问的域名。例如,如果你允许所有域名访问,可以将其设置为 "*" 示例代码(使用 Node.js 和 Express): ``` app.use(function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); next(); }); ``` 2. 使用代理 如果你无法在服务器端进行设置,可以尝试使用代理。通过设置一个与你的应用同域名的代理服务器,来转发请求到目标服务器,并将响应返回给你的应用。这样就可以避免跨域问题。 示例代码(使用 webpack-dev-server 的代理配置): ``` devServer: { proxy: { '/api': { target: 'http://api.example.com', pathRewrite: {'^/api' : ''} } } } ```
阅读全文

相关推荐