跨域问题Response to preflight request doesn’t pass access control check: No 'Access-Control-Allow-Origin
现象
释义
这个问题,属于跨域没有跨过去
。
问题原因1:后端没有设置header
解决办法:后端action(controller)里添加如下代码即可
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE");
问题原因2:前端设置的数据格式不正确
解决办法:前端ajax里删除contentType,如下图所示
附
找到config/index.js
设置proxyTable,实际上就是设置代理路径(PS:设置config文件之后,需要重新npm run dev)
dev: {
env: require('./dev.env'),
port: 8080,
autoOpenBrowser: true,
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {
'/api': {
target: '请求地址ip加端口',
changeOrigin: true,
pathRewrite: {
'^/api': '/'
}
}
},
}