📌  相关文章
📜  access-control-allow-origin - Javascript (1)

📅  最后修改于: 2023-12-03 14:39:00.580000             🧑  作者: Mango

access-control-allow-origin - Javascript

概述

access-control-allow-origin是一个Javascript中的HTTP请求头字段,用于指定响应中允许的源(域)的访问权限。它被用作CORS(跨域资源共享)机制的一部分。当客户端在浏览器中向不同源(域)发送请求时,会根据服务器的配置和access-control-allow-origin头来判断是否允许跨域访问。

语法
Access-Control-Allow-Origin: <origin> | *
  • <origin>可以是一个包含协议、域名和端口号的URL,或者*表示允许来自任意源的请求。
  • 该头可以出现在HTTP响应中,表示服务器允许指定的源访问资源。
使用示例
允许特定源的访问
app.js:

const http = require('http');
const server = http.createServer();

server.on('request', (req, res) => {
  res.setHeader('Access-Control-Allow-Origin', 'https://example.com');
  // 其他响应头和内容...
  res.end();
});

server.listen(3000, () => {
  console.log('Server running on port 3000');
});

以上示例代码创建了一个Node.js服务器,并在响应头中设置Access-Control-Allow-Originhttps://example.com,表示只允许来自https://example.com的请求访问资源。

允许任意源的访问
app.js:

const http = require('http');
const server = http.createServer();

server.on('request', (req, res) => {
  res.setHeader('Access-Control-Allow-Origin', '*');
  // 其他响应头和内容...
  res.end();
});

server.listen(3000, () => {
  console.log('Server running on port 3000');
});

以上示例代码创建了一个Node.js服务器,并在响应头中设置Access-Control-Allow-Origin*,表示允许来自任意源的请求访问资源。

注意事项
  • 当使用Access-Control-Allow-Origin: *时,要注意安全性,因为这将允许任何网站都能够访问资源,可能会导致安全风险。
  • 如果服务器返回多个Access-Control-Allow-Origin头,浏览器将拒绝响应,以防止多个允许源的混淆。
  • 可以在响应中使用Access-Control-Allow-Credentials头来指示是否允许携带身份凭证进行跨域请求。
参考资料