Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Webpack Vue.js未发送授权标头_Webpack_Vue.js_Jwt_Axios - Fatal编程技术网

Webpack Vue.js未发送授权标头

Webpack Vue.js未发送授权标头,webpack,vue.js,jwt,axios,Webpack,Vue.js,Jwt,Axios,我在Vue.js 2中使用Vue资源和axios时遇到了授权头问题(两者的问题相同)。向后端发送请求时,Vue未添加标头。下面是我的代码和示例请求。服务器正在WSGIServer及其Django上运行(还不是nginx) 请求发送时: <script> import Account from './Account.vue'; import axios from 'axios'; export default { data() { return {

我在Vue.js 2中使用Vue资源和axios时遇到了授权头问题(两者的问题相同)。向后端发送请求时,Vue未添加标头。下面是我的代码和示例请求。服务器正在WSGIServer及其Django上运行(还不是nginx)

请求发送时:

<script>
  import Account from './Account.vue';
  import axios from 'axios';

  export default {
    data() {
      return {
        accounts: []
      }
    },
    created: function () {
      this.getAccounts();
    },
    methods: {
      getAccounts() {
        const token = localStorage.getItem('token');

        axios.defaults.baseURL = 'http://localhost:8000';
        axios.defaults.headers.common['Authorization'] = 'JWT <my_token>';

        axios.get('/api/accounts/')
          .then(
            response => {
              this.accounts = response.data;
            }
          )
          .catch(
            error => console.log(error)
          );

      },
    }
  }
</script>
访问控制请求标题:“授权,xxxxx”

而不是:

<script>
  import Account from './Account.vue';
  import axios from 'axios';

  export default {
    data() {
      return {
        accounts: []
      }
    },
    created: function () {
      this.getAccounts();
    },
    methods: {
      getAccounts() {
        const token = localStorage.getItem('token');

        axios.defaults.baseURL = 'http://localhost:8000';
        axios.defaults.headers.common['Authorization'] = 'JWT <my_token>';

        axios.get('/api/accounts/')
          .then(
            response => {
              this.accounts = response.data;
            }
          )
          .catch(
            error => console.log(error)
          );

      },
    }
  }
</script>
授权:“JWT”

后端工作正常-我使用CURL检查请求和响应

Accounts.vue:

<script>
  import Account from './Account.vue';
  import axios from 'axios';

  export default {
    data() {
      return {
        accounts: []
      }
    },
    created: function () {
      this.getAccounts();
    },
    methods: {
      getAccounts() {
        const token = localStorage.getItem('token');

        axios.defaults.baseURL = 'http://localhost:8000';
        axios.defaults.headers.common['Authorization'] = 'JWT <my_token>';

        axios.get('/api/accounts/')
          .then(
            response => {
              this.accounts = response.data;
            }
          )
          .catch(
            error => console.log(error)
          );

      },
    }
  }
</script>
响应标题

Allow:GET, POST, HEAD, OPTIONS
Content-Length:58
Content-Type:application/json
Date:Wed, 21 Jun 2017 06:59:34 GMT
Server:WSGIServer/0.2 CPython/3.5.2
Vary:Accept, Cookie
WWW-Authenticate:JWT realm="api"
X-Frame-Options:SAMEORIGIN
Accept:*/*
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4
Access-Control-Request-Headers:authorization,xxxxxx
Access-Control-Request-Method:GET
Connection:keep-alive
Host:localhost:8000
Origin:http://localhost:8080
Referer:http://localhost:8080/accounts
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/58.0.3029.110 Chrome/58.0.3029.110 Safari/537.36
请求标题

Allow:GET, POST, HEAD, OPTIONS
Content-Length:58
Content-Type:application/json
Date:Wed, 21 Jun 2017 06:59:34 GMT
Server:WSGIServer/0.2 CPython/3.5.2
Vary:Accept, Cookie
WWW-Authenticate:JWT realm="api"
X-Frame-Options:SAMEORIGIN
Accept:*/*
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4
Access-Control-Request-Headers:authorization,xxxxxx
Access-Control-Request-Method:GET
Connection:keep-alive
Host:localhost:8000
Origin:http://localhost:8080
Referer:http://localhost:8080/accounts
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/58.0.3029.110 Chrome/58.0.3029.110 Safari/537.36

您是否有一台服务器,同时提供网页和API?或者两个不同的服务?两个不同的服务器一个带有API的是localhost:8000,另一个(前端)localhost:8080标头是否也应该具有以下格式:Authorization:Bearer根据:节JSON Web令牌如何工作?问题可能是因为您的前端和API位于不同的端口上,浏览器必须处理CORS:
访问控制请求标头
访问控制请求方法
是浏览器发出的飞行前请求中的标题。你们在你们的API服务器上设置了CORS吗?我认为问题在前端,因为CURL工作正常,但问题在服务器上。我不知道为什么,因为它总是在这种配置下工作。问题是我的后端上的CORS,我用来解决标题的问题。感谢@vsenkoDo的帮助您是否有一台服务器,同时提供网页和API?或者两个不同的服务?两个不同的服务器一个带有API的是localhost:8000,另一个(前端)localhost:8080标头是否也应该具有以下格式:Authorization:Bearer根据:节JSON Web令牌如何工作?问题可能是因为您的前端和API位于不同的端口上,浏览器必须处理CORS:
访问控制请求标头
访问控制请求方法
是浏览器发出的飞行前请求中的标题。你们在你们的API服务器上设置了CORS吗?我认为问题在前端,因为CURL工作正常,但问题在服务器上。我不知道为什么,因为它总是在这种配置下工作。问题是我的后端上的CORS,我用来解决标题的问题。谢谢你的帮助@vsenko