ãã®ããŒã«ã®æ©èœ
ãã®ç¡æãªã³ã©ã€ã³WebãµãŒãã¹ãã§ãã¯ã§ããŠã§ããµã€ããAPIã皌åããŠãããã確èªã§ããŸãâURLã1è¡1ä»¶ã§å ¥åãããšHTTPã¹ããŒã¿ã¹ã³ãŒããå¿çæéã皌åç¶æ³ã衚瀺ã皌å確èªãAPIãã«ã¹ãã§ãã¯ããŠã§ããµã€ãã¹ããŒã¿ã¹ã®ç£èŠã»ãããã°ã«ãç»é²ã»ãããã·äžèŠããã©ãŠã¶ãåURLã«çŽæ¥ã¢ã¯ã»ã¹ãããããåœæ¹ãµãŒããŒãçµç±ããŸããã皌å確èªãAPIã®å¥å šæ§ãæ¥ç¶ãããã°ãCORS確èªã«æé©ã§ãã
äœ¿ãæ¹
ã¯ã€ãã¯ã¹ã¿ãŒãïŒ URLã貌ãä»ããŸãã¯å ¥åïŒ1è¡1ä»¶ãæå€§20ïŒãäžè¶³ããŠããã°https://ãä»ãããã§ãã¯ãã¯ãªãã¯ããŠãã衚ïŒURLãã¹ããŒã¿ã¹ã³ãŒããå¿çæéãç¶æ ïŒã確èªãç·ïŒUpãŸãã¯Reachableãé»ïŒRedirectãèµ€ïŒãšã©ãŒãŸãã¯ãããã¯ã
- URLãå
¥å â URLã貌ãä»ããŸãã¯å
¥åã1è¡1ä»¶ïŒãŸãã¯ã«ã³ãåºåãïŒãã¹ããŒã ããªããã°
https://ãä»ããã - ãã§ãã¯ãã¯ãªã㯠â ããŒã«ãURLãæ€èšŒãã5ä»¶ãã€ãããã§åURLã«ã¢ã¯ã»ã¹ã
- çµæã衚瀺 â 衚ã«URLãHTTPã¹ããŒã¿ã¹ã³ãŒããå¿çæéïŒmsïŒãç¶æ ïŒUpãRedirectãã¯ã©ã€ã¢ã³ããšã©ãŒããµãŒããŒãšã©ãŒãTimeoutãReachableãCORS blockedïŒã
- ç¶æ ã®èŠæ¹ â ç·ïŒUpïŒ2xxïŒãŸãã¯ReachableïŒCORSå¶éïŒãé»ïŒRedirectïŒ3xxïŒãèµ€ïŒãšã©ãŒãŸãã¯ãããã¯ã
åäœã®ä»çµã¿
URLã¯ããŒã¹ïŒæ¹è¡ãŸãã¯ã«ã³ãã§åå²ïŒãããããªã ã»æ€èšŒãhttpãšhttpsã®ã¿èš±å¯ãåURLã¯ãŸãfetch()ã®mode: "cors"ã§ãã«ã¹ããŒã¿ã¹ååŸã詊è¡ãCORSçãªãšã©ãŒã§å€±æãããmode: "no-cors"ã§å詊è¡âãªã¯ãšã¹ããæåããã°ReachableïŒã¹ããŒã¿ã¹äžæïŒãšå ±åããªã¯ãšã¹ãã¯ãã©ãŠã¶ããå®è¡ãããããCORSãæåã®è©Šè¡ã«é©çšã5ç§ã®ã¯ãŒã«ããŠã³ã§é£ç¶ãã§ãã¯ãæå¶ã1åãããæå€§20URLãèšç®ã¯ãã¹ãŠãã©ãŠã¶å
ã§è¡ãããåœæ¹ãµãŒããŒã«ã¯éä¿¡ãããŸããã
䜿çšäŸãšãµã³ãã«
- 皌åç¢ºèª â è€æ°ãšã³ããã€ã³ããå¿çããŠããã確èªã
- APIãã«ã¹ â è€æ°ã®API URLãçŽ æ©ãpingã
- æ¥ç¶ãããã° â ã©ã®URLãå¿çããã©ã®URLãã¿ã€ã ã¢ãŠãããã確èªã
- CORSç¢ºèª â ã©ã®ãµã€ããã¯ãã¹ãªãªãžã³ãªã¯ãšã¹ããèš±å¯ããã確èªã
äŸ
- CORSãèš±å¯ããURLïŒäŸïŒhttps://httpbin.org/getïŒâ 200ãUp
- https://httpbin.org/status/404 â 404ãã¯ã©ã€ã¢ã³ããšã©ãŒ
- CORSãå³ããããŠãããµã€ã â ReachableïŒCORSå¶éïŒãŸãã¯CORS blocked
å¶éãšæ¢ç¥ã®å¶çŽ
- CORS â CORSããããã¯ãããµã€ãã¯ãReachableãïŒå¿çãããã¹ããŒã¿ã¹äžæïŒãŸãã¯ãCORS blockedããšè¡šç€ºããã«ãªã¹ããŒã¿ã¹ã³ãŒãã«ã¯CORSãèš±å¯ãã察象ãå¿ èŠã
- æå€§20URL â 1åã®ãã§ãã¯ãããã
- 8ç§ã¿ã€ã ã¢ãŠã â åURLã«8ç§ã®äžéã
- 5ç§ã¯ãŒã«ããŠã³ â æ¬¡ã®ãã§ãã¯ãŸã§5ç§åŸ æ©ã
- http/httpsã®ã¿ â ä»ã®ã¹ããŒã ã¯æåŠã
- ãã©ãŠã¶ã®å¶é â åäžãªãªãžã³ããªã·ãŒãšfetchã®æåã«åŸãã