前端解决跨域的问题代码
时间: 2023-09-08 13:11:14 浏览: 38
在前端解决跨域问题,可以通过以下方式:
1. 使用 JSONP(仅支持 GET 请求)
```
function jsonp(url, callback) {
const script = document.createElement('script');
script.src = url + '?callback=' + callback;
document.body.appendChild(script);
}
jsonp('http://example.com/data', 'callback');
```
2. 使用 CORS(需要服务器端设置)
前端代码:
```
fetch('http://example.com/data')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
```
服务器端代码(Node.js + Express):
```
const express = require('express');
const app = express();
app.use(function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
next();
});
app.get('/data', function(req, res) {
res.json({ message: 'Hello, world!' });
});
app.listen(3000, function() {
console.log('Server is running on port 3000');
});
```
以上是两种常见的前端解决跨域问题的方式,但并不是所有情况都适用,需要根据具体情况进行选择。