Ajax不允许使用“Access-Control-Allow-Origin”。
创始人
2024-08-03 15:30:40
0

当使用Ajax请求跨域资源时,浏览器会检查响应头中的"Access-Control-Allow-Origin"字段,来确定是否允许跨域请求。如果服务器没有正确设置这个响应头,浏览器会禁止访问。

以下是一些解决方法:

  1. CORS代理服务器 可以使用一个CORS代理服务器来解决这个问题。代理服务器会接收Ajax请求,然后在服务器端发送请求到目标服务器,再将响应返回给浏览器。这样就避免了浏览器的同源策略限制。

例如,使用Node.js可以使用cors-anywhere模块创建一个简单的CORS代理服务器:

const corsAnywhere = require('cors-anywhere');
corsAnywhere.createServer().listen(8080, 'localhost', function() {
  console.log('CORS Anywhere is running on localhost:8080');
});

然后,在Ajax请求中将URL指向代理服务器:

const url = 'http://localhost:8080/目标URL';
$.ajax({
  url: url,
  // ...
});
  1. JSONP 如果目标服务器支持JSONP(JSON with Padding),可以使用JSONP来实现跨域请求。JSONP通过动态添加一个