我正在使用 GiantBomb API 开发移动应用程序。我正在使用 React Native 和 Expo 进行开发。我目前正在应用程序中的一个屏幕上工作,该屏幕采用从列表中选择的游戏的唯一 GUID 并显示相关信息。它通过 Axios GET 请求获取所需的数据。
应用程序中的早期屏幕通过相同的方法从 API 检索不同的数据,没有任何问题,并且当将应用程序中使用的相同请求放入 Postman 时 - 使用相同的 GUID - 我得到了我期望返回的数据。>
出于某种原因,通过 Axios 发出的 GET 请求返回 404 错误,而通过 Postman 发出的相同 GET 请求提供了我需要的信息。
这是在应用中发出的 Axios 请求:
axios({
url: "https://www.giantbomb.com/api/game/"+{gameId}+"/?api_key=[API_KEY]",
method: 'GET',
})
.then(response => {
setgameData(response.data);
})
.catch(err => {
console.error(err);
});
}
我知道用于显示游戏数据的屏幕具有 GUID,因为它显示在屏幕上。当显示的 GUID 输入 Postman 请求时,我得到了我期望的数据。
为什么会这样?我该如何解决?
编辑:以下是应用程序为我提供的 Axios 响应:
- node_modules\axios\lib\core\createError.js:15:17 in createError
- node_modules\axios\lib\core\settle.js:16:9 in settle
- node_modules\axios\lib\adapters\xhr.js:53:6 in handleLoad
- node_modules\event-target-shim\dist\event-target-shim.js:818:20 in EventTarget.prototype.dispatchEvent
- node_modules\react-native\Libraries\Network\XMLHttpRequest.js:592:4 in setReadyState
- node_modules\react-native\Libraries\Network\XMLHttpRequest.js:395:6 in __didCompleteResponse
- node_modules\react-native\Libraries\vendor\emitter\EventEmitter.js:189:10 in emit
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:416:4 in __callFunction
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:109:6 in __guard$argument_0
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:364:10 in __guard
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:108:4 in callFunctionReturnFlushedQueue
* [native code]:null in callFunctionReturnFlushedQueue
3030-16836
Request failed with status code 404
- node_modules\axios\lib\core\createError.js:15:17 in createError
- node_modules\axios\lib\core\settle.js:16:9 in settle
- node_modules\axios\lib\adapters\xhr.js:53:6 in handleLoad
- node_modules\event-target-shim\dist\event-target-shim.js:818:20 in EventTarget.prototype.dispatchEvent
- node_modules\react-native\Libraries\Network\XMLHttpRequest.js:592:4 in setReadyState
- node_modules\react-native\Libraries\Network\XMLHttpRequest.js:395:6 in __didCompleteResponse
- node_modules\react-native\Libraries\vendor\emitter\EventEmitter.js:189:10 in emit
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:416:4 in __callFunction
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:109:6 in __guard$argument_0
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:364:10 in __guard
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:108:4 in callFunctionReturnFlushedQueue
* [native code]:null in callFunctionReturnFlushedQueue
答案 0 :(得分:1)
正如评论者指出的(感谢@MinusFour @MasoudTahmasebi @spijs),问题是一个简单的语法错误,涉及错位的 {}。谢谢大家!