axios如何解决线上跨域问题

由于sever端是别人的,所以只能在前端处理跨域请求

axios如何处理跨域问题,我在proxyTable里面的配置只在本地起作用的

线上环境又出现跨域问题了

阅读 9k
7 个回答

暂且用 JsonBird 解决了,不过有一定的延迟,目前暂时没有找到更好的办法

线上跨域 前端解决不了的 CORS 或者nginx代理 或者接口开发

快速直接的使用 nginx 代理

这种情况下貌似只能反向代理了吧

新手上路,请多包涵

CORS(Cross-Origin Resource Sharing, 跨源资源共享) HTTP访问控制技术,不过有兼容性问题。

求大佬们轻喷,我们前后端分离的项目,跑在一个Express服务中的,代码如下,代理用的这个中间件,http-proxy-middleware。
`var express = require('express');
var proxyMiddleware = require('http-proxy-middleware');
var apiHost = 'http://172.16.0.249:8181';
var proxyTable = {
'/v1': {

target: apiHost,
changeOrigin: true,

},
'/preview': {

target: apiHost,
changeOrigin: true,

},
'/download': {

target: apiHost,
changeOrigin: true,

}
};

var app = express();
var port = 4000;
Object.keys(proxyTable).forEach(function (context) {
var options = proxyTable[context];
if (typeof options === 'string') {

options = { target: options }

}
app.use(proxyMiddleware(options.filter || context, options))
});
app.use(require('connect-history-api-fallback')());
app.use(express.static('./dist'));
var uri = 'http://localhost:' + port;

var _resolve;
var readyPromise = new Promise(function (resolve) {
_resolve = resolve;
});

console.log('> Starting prod server...' + uri);

var server = app.listen(port);

module.exports = {

ready: readyPromise,
close: function() {
  server.close()
}

};`

推荐问题
宣传栏