从源“http://localhost:3000”访问“https://***”处的 XMLHttpRequest 已被 CORS 策略阻止
Posted
技术标签:
【中文标题】从源“http://localhost:3000”访问“https://***”处的 XMLHttpRequest 已被 CORS 策略阻止【英文标题】:Access to XMLHttpRequest at 'https://***' from origin 'http://localhost:3000' has been blocked by CORS policy 【发布时间】:2020-11-11 17:46:31 【问题描述】:我正在尝试使用 axios 发送请求,但我遇到了 CORS 问题, 这是我的 nuxt.config.js
plugins: [
"@/plugins/axios/apiService.js",
],
modules: [
'@nuxtjs/axios',
'@nuxtjs/proxy',
],
axios:
baseURL: process.env.API_URL,
proxy: true,
credentials: false
,
proxy:
'/api':
target: 'https://dev.mobit.ir/api/web/v4',
pathRewrite:
'^/api' : '/'
,
changeOrigin: true,
,
这是我的 apiService
import axios from "axios";
import API_URL from "./config";
export const axiosInstance = axios.create(
headers:
Accept: 'application/json',
);
//Set base url for axios requests
axiosInstance.defaults.baseURL = API_URL;
export const ApiService =
//resource: api address
get(resource, params = "")
return axiosInstance.get(resource, params).catch(error =>
throw new Error(`[RWV] ApiService $error`);
);
,
post(resource, params)
return axiosInstance.post(`$resource`, params);
;
我尝试根据 nuxt 文档设置代理,但它不起作用, 如果我使用像https://cors-anywhere.herokuapp.com/ 这样的代理,它会起作用,但为什么 nuxt 代理不起作用?我认为这不是正确的方法。 我必须使用 cookie 或中间件吗?
【问题讨论】:
【参考方案1】:根据下面的链接,我们应该使用模块数组中的一个数组来定义代理,如下所示:
['@nuxtjs/proxy', pathRewrite: '^/api' : '/api/web/v4' ]
阅读更多链接: https://github.com/nuxt-community/proxy-module
【讨论】:
【参考方案2】:在这种类型的 CORS 问题中,使用下面链接之类的扩展可以解决它,直到将其发布到主域中
https://chrome.google.com/webstore/detail/allow-cors-access-control/lhobafahddgcelffkeicbaginigeejlf?hl=en#:~:text=Allow%20CORS%3A%20Access%2DControl%2DAllow%2DOrigin%20lets%20you,default%20(in%20javascript%20APIs).
【讨论】:
以上是关于从源“http://localhost:3000”访问“https://***”处的 XMLHttpRequest 已被 CORS 策略阻止的主要内容,如果未能解决你的问题,请参考以下文章
CORS 策略已阻止从源“http://localhost:3000”访问“http://localhost:8000/api/puppies”获取
从源“http://localhost:3000”访问“http://127.0.0.1:5000/product”处的 XMLHttpRequest
从源“http://localhost:3000”访问“http://localhost:5000/api/products”的 XMLHttpRequest 已被 CORS 策略阻止:无“访问控制”
从源“http://localhost:3000”访问“https://***”处的 XMLHttpRequest 已被 CORS 策略阻止
CORS 策略已阻止从源“http://localhost:3000”访问“http://localhost:9900/jaxrs-post-example/rest/customers”获取
CORS 策略已阻止从源“http://localhost:3000”访问“https://randomuser.me/api/?results=4”获取: