Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
fetchͱCORSʹજΉ᠘ EDWARD FOX @Meguro.es 2016/06/21
Slide 2
Slide 2 text
Edward Fox - Developer @ Repro Inc. - RoR, Javascript, AWS - UI/UX, Team Development
Slide 3
Slide 3 text
repro.io - ϞόΠϧΞϓϦ͚ ϚʔέςΟϯάπʔϧ
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
ࠓ͢͜ͱ fetch APIͷར༻ͱCORSʢCloudFrontʣ ͰϋϚͬͨ᠘
Slide 6
Slide 6 text
ࠓ͞ͳ͍͜ͱ - fetch ͷৄ͍͍͠ํ - CORS ͷৄࡉ - CloudFront ͷઃఆৄࡉ
Slide 7
Slide 7 text
fetchͱ 1 WHATWGʹΑΔఆٛ - Fetchඪ४ɺϦΫΤετ, Ԡ, ͓Αͼ ͜ͷ̎ͭΛଋറ͢Δॲཧ — fetching ʢϦιʔεऔಘ ॲཧʣ— Λఆٛ͢Δɻ - Fetchඪ४ʹΑΓJavascriptͷfetch() API ఏڙ͞ΕΔ
Slide 8
Slide 8 text
fetchͱ 2-1 WHATWGͷఏڙ͢Δpolyfill࣮ - fetch APIͷ༷ʹ४ڌ͢Δpolyfill ࣮ - https://github.com/github/fetch
Slide 9
Slide 9 text
fetchͱ 2-2 GET fetch("/articles") .then(function(response) { return response.text(); }) .then(function(text) { document.body.innerHTML = text; })
Slide 10
Slide 10 text
Γ͔ͨͬͨ͜ͱ - ϝοηʔδ࡞ػೳͷ Ӿཡը໘Λ࡞Δ
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
- طଘͷ#editϖʔδ - fetchͰը૾Λऔಘ͠දࣔ - ৽͍͠#showϖʔδ - Rails͔Βը૾ϦϯΫΛؚΉ HTMLΛฦ͢
Slide 14
Slide 14 text
৽͘͠࡞ͬͨ#showϖʔδΛ ϦϦʔεʂ
Slide 15
Slide 15 text
No content
Slide 16
Slide 16 text
ͳ͔ͥؔͳ͍#editϖʔδͰ Կදࣔ͞Εͳ͍ʂ
Slide 17
Slide 17 text
ରࡦ 1 fetchͷϔομΛม͑ͯΈΔ
Slide 18
Slide 18 text
fetch("/messages/1234", { headers: { "Accept": "application/json", "Content-Type": "application/json", } })
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
ରࡦ 2 CloudFront ͷCORSઃఆΛ͍͘͡Γ͢
Slide 21
Slide 21 text
No content
Slide 22
Slide 22 text
No content
Slide 23
Slide 23 text
ରࡦ 3 fetchͰCORSΛແޮʹ͢Δ
Slide 24
Slide 24 text
fetch("/messages/1234", { mode: "no-cors", })
Slide 25
Slide 25 text
No content
Slide 26
Slide 26 text
No content
Slide 27
Slide 27 text
࣮ࡍʹى͖͍ͯͨ͜ͱ 1. #showͰΫϥΠΞϯτʹը૾͕Ωϟογϡ͞ΕΔ ͨͩ͠ɺAccess-Control-Allow-Originϔομͳ͠ 2. ಉ͡ը૾Λ#editͰऔಘ͠Α͏ͱ͢Δ ͢ͰʹϦιʔεΩϟογϡ͞Ε͍ͯΔ fetchͷCORSʹඞཁͳϔομ͕Ϧιʔεʹͳ͍ͨΊɺ fetchϦΫΤετࣗମ͕தஅ͞ΕΔ 3. runtime error Ҏ߱ͷॲཧͯ͢தஅ͞Εɺը૾ΛؚΉશͯͷίϯ ςϯπ͕දࣔ͞Εͳ͍
Slide 28
Slide 28 text
ղܾࡦ fetchͷϔομʹ ΛՃ pragma: “no-cache”
Slide 29
Slide 29 text
·ͱΊ ɾfetchΛͬͯCORSͳϦιʔεΛ औಘ͢Δͱ͖ཁҙ ɾը໘ؒͰϦιʔεͷऔಘํ๏͕ ҟͳΔ͜ͱʹΑΔόά͕͋Δ͜ͱ Λͬͨ
Slide 30
Slide 30 text
ٙ ɾΩϟογϡ͞Ε͍ͯΔͷΛΘ ͟Θ͟ແޮʹ͢Δͷ͕దͳͷ͔ʁ ɾΫϥΠΞϯτͰͷΩϟογϡʹ ىҼ͢ΔόάΛૣظʹݟ͚ͭΔʹ ʁ
Slide 31
Slide 31 text
ࢀߟ: - Fetch Living Standard - Fetch API ղઆɺ·ͨ Web ʹ͓͍ͯ "Fetch ͢Δ" ͱԿ͔ʁ - ͓ർΕ͞·XMLHttpRequestɺ͜Μʹͪfetch - [৽ػೳ] Amazon CloudFront͕CORSʹରԠ͠·ͨ͠ - fetch(), how do you make a non-cached request?
Slide 32
Slide 32 text
WE’RE HIRING! ❤
Slide 33
Slide 33 text
No content