JS跨域是指在JavaScript中,一个网页的脚本试图访问另一个不同源(协议、域名或端口不同)的网页资源。由于浏览器的同源策略限制,这种访问默认是被禁止的,以保护用户的安全和隐私。
<script>
标签没有跨域限制的特性,但仅支持GET请求。document.domain
来实现跨域。服务器端(Node.js Express示例):
const express = require('express');
const app = express();
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*'); // 允许所有来源访问
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
next();
});
app.get('/data', (req, res) => {
res.json({ message: 'This is CORS-enabled data.' });
});
app.listen(3000, () => {
console.log('CORS-enabled web server listening on port 3000');
});
客户端(JavaScript):
fetch('http://localhost:3000/data')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Access-Control-Allow-Origin
设置为*
,而是指定具体的源,以提高安全性。通过以上方法,可以有效地解决JavaScript中的跨域问题,实现不同源之间的安全数据交互。
领取专属 10元无门槛券
手把手带您无忧上云