请求的资源上不存在“Access-Control-Allow-Origin”标头

时间:2016-12-01 09:44:51

标签: javascript reactjs cors axios

我知道这个qquestion已经多次询问但没有一个解决了我的问题。我正在使用axios从服务器获取令牌(http://dev.site.com:82/token)。我正在使用localhost。我也提供了标题但仍然出现No 'Access-Control-Allow-Origin' header is present的错误。这个错误是从我的js代码(axios)产生的,还是服务器中的问题?

const config = {
    method: 'get',
    url: `${API_URL}/token`,
    headers: {
        'Access-Control-Allow-Origin': '*',
        'Content-Type': 'application/json',
       },
  };

export function getToken() {
  return function (dispatch) {
    console.log('action triggered atleast');
    axios.request(config)
    .then(response => {
      console.log('response', response);
      localStorage.setItem('token', response.data.token);
      dispatch({ type: GET_TOKEN });
    })
    .catch(error => {
      errorHandler(dispatch, error.response, TOKEN_ERROR);
    });
  };
}

我的代码中有错误或遗漏了什么吗?

UDPATE

add_header 'Access-Control-Allow-Origin' "*";
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'X-CustomHeader,Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With';
        # required to be able to read Authorization header in frontend
        add_header 'Access-Control-Expose-Headers' 'Authorization' ;

if ($request_method = 'OPTIONS') {
        # Tell client that this pre-flight info is valid for 20 days
        add_header 'Access-Control-Max-Age' 1728000;
        add_header 'Content-Type' 'text/plain charset=UTF-8';
        add_header 'Content-Length' 0;
        return 204;
}

以上是我的nginx配置。

1 个答案:

答案 0 :(得分:2)

服务器需要发回CORS头而不是请求

在这里查看如何启用cors:http://enable-cors.org/server.html

如果您无法访问服务器,那么您可能想尝试类似cors proxy

的内容