Problémám van, hogy a webhelyem bármely része tartalmat tölt be, vagy adatokat küldök az api-ból az axiók használatával az ilyen kérések kezelésére, az iOS 12. 4-es verziójú iPhone-szal megnyitott reakjs weboldal axios dobási hibája. Ez az egyik példa az axios kérésre, amelyet használok: - axios (`${}book/${}`, { headers: { Authorization: token()? token(): ''}, }) ((res) => { setBook();}) ((error) => { alert(error); setNotFound(true);});}, []); Azt kezdem gyanítani, hogy a probléma a CORS-tól származik, nem ismerem sokat és hogyan működik, de amit a Chrome hálózati monitoron észrevettem, minden egyes kérésre vonatkozik, az axiózók minden GET-kérés előtt OPTION kérést küldenek. Charles-t is használtam az ios eszközstimulátor hálózati forgalmának figyelemmel kísérésére, és észrevettem, hogy csak az OPTION kérést küldik az api háttérprogramnak: A Laravel 5. Használja az Async / Await with Axios alkalmazást a React.js fájlban - JAVASCRIPT - 2022. 8-at háttérprogramként, a Reactjs-t pedig Frontend "axios" -ként használom: "^ 0. 19. 2", "reagál": "^ 16. 13. 1", Az App \ Http \ Kernel fájl tartalma: -
Először is, bár a legtöbb hiba egy helyen történő kezelése jó ötlet, a kérésekkel ez nem olyan egyszerű. Néhány hibát (pl. 400 ellenőrzési hibát, például: "felhasználónév elvéve" vagy "érvénytelen e-mail") kell továbbadni. Tehát most egy ígéret alapú funkciót használunk: const baseRequest = async (method: string, url: string, data:? {}) => new Promise<{ data: any}>((resolve, reject) => { const requestConfig: any = { method, data, timeout: 10000, url, headers: {}, }; try { const response = await axios(requestConfig); // Request Succeeded! resolve(response);} catch (error) { // Request Failed! if (sponse) { // Request made and server responded reject(response);} else if (quest) { // The request was made but no response was received reject(response);} else { // Something happened in setting up the request that triggered an Error reject(response);}}}; akkor használhatja a kérést, mint a try { response = await baseRequest('GET', '')} catch (error) { // either handle errors or don't} Bocs a nitpickért, de két dolog: ha valóban használni akarod async mozgassa lefelé ígérete megoldási / elutasítási funkciója előtt.
Az Azure-függvény üzembe helyezése Azure Functions többféleképpen is üzembe helyezhetők. A virtuális gép üzembe helyezésével kapcsolatos további Azure Functions lásd a Azure Functions. A TokenProvider megvalósítása A TokenProviders sokféleképpen megvalósítható, de két különálló API-hívást kell implementálja: fetchOrdererToken és fetchStorageToken. Ezek az API-k a Folyadékrendezésre és a tárolási szolgáltatásokra vonatkozó jogkivonatok beolvasásáért felelősek. Mindkét függvény a jogkivonat TokenResponse értékét képviselő objektumokat ad vissza. A Dinamikus keretrendszer a két API-t szükség szerint hívja meg a jogkivonatok lekérése érdekében. A bérlői titkos kulcs biztonságossá tétele érdekében a rendszer egy biztonságos háttérhelyen tárolja, és csak az Azure-függvényen belülről érhető el. A jogkivonatok lekéréséhez egy GET vagy egy kérést kell érvénybe helyeznie az üzembe helyezett Azure-függvénynek, tenantID meg kell adva a és documentId a, és adatokat userID / userName. POST Az Azure-függvény felelős a bérlőazonosító és a bérlőkulcs titkos kulcsa közötti leképezésért a jogkivonat megfelelő létrehozásához és aláíráshoz.