在React中将cURL命令转换为有效的Axios调用时遇到问题。我需要做3件事(并且执行cURL命令),即GET,PUT和POST。我在S.O上只找到一种资源。虽然我仍然无法完成通话,但对您有所帮助。更重要的是,如果我只是对网站进行抓取,就会遇到CORS政策问题。是否有办法解决或让React使用cURL命令?
我用来转换此cURL命令的资源是: https://github.com/axios/axios/issues/745
然后,我尝试使用Axios文档来确保我的Synatax是正确的: https://github.com/axios/axios#axioscreateconfig
我能够进行访存,但是由于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 = () => { //Not working
axios({
url: "https://beer.fluentcloud.com/v1/beer/",
method: get,
headers: { "Content-Type": "application/json" }
})
.then(res => {
console.log(`Axios Call completed: ${res}`)
});
}
Axios调用出错:
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
答案 0 :(得分:0)
所以问题可能出在method: get
上。这里的get是一个变量。
您的情况是不确定的。
因此,您可能希望将其用作字符串。
例如:
axiosGetData = () => { //Not working
axios({
url: "https://beer.fluentcloud.com/v1/beer/",
method: 'get',
headers: { "Content-Type": "application/json" }
})
.then(res => {
console.log(`Axios Call completed: ${res}`)
});
}
这应该可以解决您的问题。
答案 1 :(得分:0)
我认为您找到的解决方案是正确的-但我认为您必须将get
用作字符串而不是变量,因为它是undefined
为了避免将来出现此类错误,您可以使用standard
答案 2 :(得分:0)
尝试一下
const routes: Routes = [
{
path: 'child',
component: MyComponent
}
]
axios({
//...
method: 'get',
//...
}).then(onFulfilment);
属性应为method