1
votes

On redash I have a query. It's GET request. On POSTMAN it works well. Query example:

https://app.redash.io/<company name>/api/queries/<query id>/results.json?api_key=<api key>

But on axios it throws:

Network error

And on console written:

Access to XMLHttpRequest at https://app.redash.io/<company name>/api/queries/<query id>/results.json?api_key=<api key> from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

My axios default configs:

import axios from 'axios/index';
import { appVersion } from '../../constants/defaultValues';

const { CancelToken } = axios;
export const source = CancelToken.source();

const api = axios.create({
    timeout: 5 * 60 * 1000,
    headers: {
        version: appVersion,
    },
    cancelToken: source.token,
});

export default api;
1

1 Answers

1
votes

It's not from your code. your code is right

CORS is a browser feature. Servers need to opt into CORS to allow browsers to bypass same-origin policy. Your server would not have that same restriction and be able to make requests to any server with a public API.

You can read more about Cross-Origin Resource Sharing