【发布时间】:2020-08-24 04:33:27
【问题描述】:
我正在开发一个简单的应用程序,它从某个 url 的 json 资源返回一个值。
虽然我已经创建了一个vue.config.js 文件来避免 CORS 问题,但仍在执行消息:
CORS 策略已阻止从源“http://localhost:8080”获取“https://api.darksky.net/forecast/xxx/37.8267,-122.4233”的访问权限: 请求的资源上不存在“Access-Control-Allow-Origin”标头。 如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。
我错过了什么?非常感谢!
位置.vue
<template>
<div>
<h1>{{ forecast.timezone }}</h1>
</div>
</template>
<script>
export default {
name: 'Location',
props: {
forecast: Array
}
}
</script>
App.vue
<template>
<div id="app">
<img alt="Vue logo" src="./assets/logo.png">
<location v-bind:forecast="forecast" />
</div>
</template>
<script>
import Location from './components/Location.vue'
export default {
name: 'App',
components: {
Location
},
data() {
return {
forecast: []
}
},
mounted() {
this.getTimeZone()
},
methods: {
async getTimeZone() {
try {
const response = await fetch('https://api.darksky.net/forecast/xxx/37.8267,-122.4233')
const data = await response.json()
this.forecast = data
} catch (error) {
console.error(error)
}
}
}
}
</script>
vue.config.js
module.exports = {
devServer: {
proxy: 'https://api.darksky.net/forecast/xxx/'
}
}
【问题讨论】:
-
我看不出 vue.config.js 如何解决你的 CORS 问题。服务器需要响应 OPTION 调用并允许进一步的 HTTP 调用。
标签: vue.js