У меня проблема с преобразованием команды cURL в рабочий вызов Axios в React. У меня есть 3 вещи, которые я должен уметь делать (и команды cURL работают), а именно: GET, PUT и POST. Я нашел только один ресурс на SO, который немного помогает, хотя я все еще не могу завершить вызов. Главное, что я столкнусь с проблемой политики CORS, если просто сделаю выборку для веб-сайта. Есть ли способ обойти это или способ заставить React использовать команду cURL?

Ресурс, который я использовал для преобразования этой команды cURL: https://github.com/axios/axios/issues/745

Затем я попытался убедиться в правильности моего синтаксиса, используя документацию Axios: https://github.com/axios/axios#axioscreateconfig

Я могу сделать Fetch, но из-за проблемы с CORS я должен использовать ссылку Heroku «CORS ANYWHERE», но это создает проблему при попытке PUT и POST. Эта ссылка (‘ https://cors-anywhere.herokuapp.com/ ‘) URL-адрес БД.

Команды CURL (это работает): GET —

curl -X GET -i -H "Content-Type: application/json" https://beer.fluentcloud.com/v1/beer 

ПОЧТА —

 curl -X POST -i -H "Content-Type: application/json" -d '{"name":"Michelob Ultra","likes":"-5"}' https://beer.fluentcloud.com/v1/beer 

ПОЛОЖИЛ —

 curl -X PUT -i -H "Content-Type: application/json" -d '{"likes":"22"}' https://beer.fluentcloud.com/v1/beer/1 

Axios GET запрос, который я пытался:

  axiosGetData = () ={amp}gt; { //Not working axios({ url: "https://beer.fluentcloud.com/v1/beer/", method: get, headers: { "Content-Type": "application/json" } }) .then(res ={amp}gt; { console.log(`Axios Call completed: ${res}`) }); } 

Ошибка от Axios Call:

 TypeError: config.method.toLowerCase is not a function at Axios.request (Axios.js:43) at wrap (bind.js:11) at App._this.axiosGetData (App.js:53) at App.js:46 

Так что, вероятно, проблема связана с method: get . Здесь get это переменная. В вашем случае это не определено. Так что вы можете использовать его как строку.

Например:

 axiosGetData = () ={amp}gt; { //Not working axios({ url: "https://beer.fluentcloud.com/v1/beer/", method: 'get', headers: { "Content-Type": "application/json" } }) .then(res ={amp}gt; { console.log(`Axios Call completed: ${res}`) }); } 

Это должно исправить вашу проблему.

Я думаю, что решение, которое вы нашли, является правильным, но я думаю, что вы должны использовать get как String, а не как переменную, так как она не undefined Чтобы избежать таких ошибок в будущем, вы можете использовать linter как standard

Попробуй это

 axios({ //... method: 'get', //... }).then(onFulfilment); 

свойство method должно быть string