在JavaScript中,實現(xiàn)跨域請求有多種方法。以下是一些常見的方法:
<script>
標(biāo)簽來實現(xiàn)跨域請求的技術(shù)。它的基本思想是利用瀏覽器允許跨域引用JavaScript腳本的特性,通過動態(tài)創(chuàng)建<script>
標(biāo)簽并設(shè)置其src
屬性為目標(biāo)服務(wù)器的URL,從而實現(xiàn)跨域請求。需要注意的是,JSONP只支持GET請求。function jsonpCallback(data) {
console.log(data);
}
const script = document.createElement('script');
script.src = 'https://example.com/data?callback=jsonpCallback';
document.body.appendChild(script);
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();
});
const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');
const app = express();
app.use('/api', createProxyMiddleware({
target: 'https://example.com',
changeOrigin: true,
pathRewrite: {
'^/api': '',
},
}));
app.listen(3000);
npm install axios
然后在代碼中引入axios并使用它發(fā)送請求:
const axios = require('axios');
axios.get('https://example.com/data')
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
以上就是JavaScript實現(xiàn)跨域請求的一些常見方法。需要注意的是,不同的方法適用于不同的場景,具體選擇哪種方法需要根據(jù)實際情況進行權(quán)衡。