Javascript Vue.js使用Vue资源记录API端点响应
我尝试在我的组件中记录API响应只是为了测试,但我仍然得到一个错误401(未经授权),我在本地主机中执行此操作,我的API也托管在本地主机中,但只是使用虚拟主机url,因此我得到以下结果: 我正在使用vue cli在localhost:8080中运行vue 这是我的代码,我的main.js:Javascript Vue.js使用Vue资源记录API端点响应,javascript,vuejs2,Javascript,Vuejs2,我尝试在我的组件中记录API响应只是为了测试,但我仍然得到一个错误401(未经授权),我在本地主机中执行此操作,我的API也托管在本地主机中,但只是使用虚拟主机url,因此我得到以下结果: 我正在使用vue cli在localhost:8080中运行vue 这是我的代码,我的main.js: import Vue from 'vue' import VueRouter from 'vue-router' import VueResource from 'vue-resource' import
import Vue from 'vue'
import VueRouter from 'vue-router'
import VueResource from 'vue-resource'
import Vuex from 'vuex'
import router from './routes/router.js'
import App from './App.vue'
Vue.use(VueRouter)
Vue.use(VueResource)
Vue.use(Vuex)
/* eslint-disable no-new */
// Start
new Vue({
router,
el: '#app',
render: h => h(App)
})
// Bearer token auth
Vue.http.interceptors.push((request, next) => {
request.headers.set('Authorization', 'Bearer eyJ0...')
request.headers.set('Accept', 'application/json')
next()
})
和我的App.vue
<template>
<div id="app">
<img src="./assets/logo.png" alt="">
<button type="button" @click="getFilial">click</button>
</div>
</template>
<script>
export default {
data () {
return {
context: 'app context',
loaded: false
}
},
methods: {
getFilial () {
this.$http.get('http://api.myurl.dev/educational/filials').then(response => {
console.log(response.data)
})
}
}
}
</script>
<style>
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>
点击
导出默认值{
数据(){
返回{
上下文:“应用程序上下文”,
加载:false
}
},
方法:{
GetDurth(){
这是。$http.get('http://api.myurl.dev/educational/filials)。然后(响应=>{
console.log(response.data)
})
}
}
}
#应用程序{
字体系列:“Avenir”、Helvetica、Arial、无衬线字体;
-webkit字体平滑:抗锯齿;
-moz osx字体平滑:灰度;
文本对齐:居中;
颜色:#2c3e50;
边缘顶部:60像素;
}
通过vue资源触发您的API,它实际上是在用适当的HTTP 401状态代码向您的前端应用程序答复您无权使用它
关注你的后端API!您的前端应用程序运行得很好,并且实际上与API进行了通信,API回答“401”:
也许您的头(
授权:Bearer eyJ0…
)没有按照API的预期进行格式化,但请再次关注您的API来调试它 通过vue资源触发API时,它实际上是在向您的前端应用程序答复您无权使用它,并使用适当的HTTP 401状态代码
关注你的后端API!您的前端应用程序运行得很好,并且实际上与API进行了通信,API回答“401”:
也许您的头(
授权:Bearer eyJ0…
)没有按照API的预期进行格式化,但请再次关注您的API来调试它 我正在使用一个名为Postman的应用程序来测试我的api,它运行得非常好..太好了!你能分享你的邮递员“授权”和“标题”选项卡的屏幕截图吗?另外,你有没有在浏览器控制台中验证发送到API的实际请求?它真的配置了你的头吗?在你提到这一点之后,我发现问题出在我的apache httpd-vhosts.conf上,我需要设置我的请求头。所以我放置了这个,现在它正在工作Header set Access Control Allow Origin“*”Header set Access Control Allow Methods“GET,POST,PUT,DELETE,OPTIONS“Header set Access Control Allow Headers”*,Authorization“
我正在使用一个名为Postman的应用程序来测试我的api,它工作得非常好..太棒了!你能分享你的邮递员“授权”和“标题”选项卡的屏幕截图吗?另外,你有没有在浏览器控制台中验证发送到API的实际请求?它真的配置了你的头吗?在你提到这一点之后,我发现问题出在我的apache httpd-vhosts.conf上,我需要设置我的请求头。所以我放置了这个,现在它正在工作Header set Access Control Allow Origin“*”Header set Access Control Allow Methods“GET、POST、PUT、DELETE、OPTIONS”Header set Access Control Allow Headers“*,Authorization”