将curl-GET转换为javascript-fetch
我能够使用下面的命令从解析中成功检索对象:将curl-GET转换为javascript-fetch,javascript,curl,parse-platform,react-native,Javascript,Curl,Parse Platform,React Native,我能够使用下面的命令从解析中成功检索对象: curl -X GET \ -H "X-Parse-Application-Id:1231231231" \ -H "X-Parse-REST-API-Key: 131231231" \ -G \ --data-urlencode 'where={"uid":"12312312"}' \ https://api.parse.com/1/classes/birthday` 但我正在努力将其转换为javascript,使用下面的代码,我将得到状态为200
curl -X GET \
-H "X-Parse-Application-Id:1231231231" \
-H "X-Parse-REST-API-Key: 131231231" \
-G \
--data-urlencode 'where={"uid":"12312312"}' \
https://api.parse.com/1/classes/birthday`
但我正在努力将其转换为javascript,使用下面的代码,我将得到状态为200
的响应。我假设错误是将数据urlencode转换为数据:
谢谢 好吧,那么基本上你还需要一个。因此,这与承诺有关。在读了这篇很棒的文章后,我发现了这一点 你需要做的是
var getObject = function {
var url = "https://api.parse.com";
url += '/1/classes/birthday';
return fetch(url, {
method: 'GET',
headers: {
'Accept': 'application/json',
'X-Parse-Application-Id': '12122',
'X-Parse-REST-API-Key': '12121',
'Content-Type': 'application/json',
},
data: '{"where":{"uid":"12312312"}}'
})
.then(function(response) {
return response.text();
})
.then(function(data){
console.log(data); //this will just be text
var data_obj = JSON.parse(data);
return data_obj
})
}
我真的不明白为什么必须返回response.text()。同样,这与承诺有关
因为当我从一开始访问response.text()时。它回报了一个承诺
希望其他类型的绅士能够评论并解释为什么返回response.text()会将承诺转化为您需要的数据
--编辑--
我添加了一些返回,以显示如何让getObject将响应数据作为对象返回。所以
var d = getObject();
现在将以js对象的形式返回响应。因为我经常想这样做,所以我制作了一个,您可以复制/粘贴一个curl命令,它将为您提供获取代码 如果希望以不同方式使用源代码,则可以签出源代码 编辑:该功能已添加到chrome开发工具中
我不熟悉
fetch
,但它看起来不应该在data
周围有单引号,比如data:{“where”:{“uid”:“12312312312”}
@chillinut刚刚尝试过,同样的响应,谢谢:body:(…),bodyUsed:false,headers:headers,ok:true,status:200,statusText:“ok”,键入:“cors”,网址:“https://api.parse.com/1/classes/birthday“
那么您解决了这个问题吗?我正在尝试类似的方法,但无论我在数据中输入了什么,甚至是格式错误的json,我都会从class/Run中获取所有的项。它没有过滤任何东西,也没有给我错误。当我对curl做同样的操作时,我得到了“json错误”,这是正确的方法,在尝试生成相同的输出之前,为什么不使用(Wireshark)并亲自查看发送的内容?是的,Charles!我爱你:D@user3696212我添加了对-F的支持,请尝试一下,如果您有任何问题,请告诉我。祝福您做到这一点!哇,太棒了!谢谢你,朋友:)
var d = getObject();