[問題] api串接與跨域問題

看板Web_Design作者 (Romeo)時間6年前 (2018/11/15 14:05), 6年前編輯推噓5(507)
留言12則, 7人參與, 6年前最新討論串1/1
初學前端兩個月,想試試看從氣象局api串接資料(JSON)來玩玩。 有金鑰已經取得url,可是遇到跨域的問題,上網找了許多解決方法, 不過似乎很多都要需要後端配合?最後找到了jsonp這個方法。 1. 創建一個script用src屬性傳入,但是又出錯了: Cross-Origin Read Blocking (CORB) blocked cross-origin response (我的URL) with MIME type application/json. 這個error的意思是因為我檔案格式是JSON所以不能引入嗎? 2. 我試過的第二個方法是直接用jquery以jsonp的方式取得: $.ajax({ url: api, type: "GET", dataType: "jsonp", success: function (data) { console.log(data); }, error: function(){ alert("false") } }); 又是出現一樣的error 3. 唯一成功的方法是安裝google的小套件: allow-control-allow-origin: * 並把上面的dataType改成json就能成功。但覺得有點旁門左道哈哈哈 請問版上各位高手應該怎麼解決這個問題呢? 希望能盡量以純前端解決這個問題(小弟只會前端語言QQ) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.252.155.253 ※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1542261929.A.A06.html ※ 編輯: BOMBGUY (111.252.155.253), 11/15/2018 14:23:44

11/15 14:44, 6年前 , 1F
感謝k大,找方法時有找到這篇文,但是有看沒有懂,我再仔細看個清楚^ _ ^

11/15, , 2F
初學的話你Y先搞懂為什麼要限制cross origin存取
11/15, 2F
14:51

11/15 14:52, 6年前 , 3F
不是怎麼解決這問題,而是你不該這麼做
11/15 14:52, 3F
Yes, sir!

11/15 17:48, 6年前 , 4F
後端唯一解
11/15 17:48, 4F
QAQ ※ 編輯: BOMBGUY (223.141.123.247), 11/15/2018 17:55:52

11/15 18:16, 6年前 , 5F
我記得google已經把前端跨域的各種方式都擋死了
11/15 18:16, 5F

11/15 18:17, 6年前 , 6F
這是client端的問題 你的瀏覽器幫你擋的
11/15 18:17, 6F

11/15 23:47, 6年前 , 7F
我串火車的 ptx API 倒沒碰過這種問題
11/15 23:47, 7F
今天用ptx API真的暢行無阻www

11/15 23:53, 6年前 , 8F
但是串接這種資料不應該用 Script src 弄進來吧
11/15 23:53, 8F

11/15 23:55, 6年前 , 9F
用var xhr = new XMLHttpRequest()再 xhr.open('GET', url)
11/15 23:55, 9F

11/16 00:24, 6年前 , 10F
後端要設定允許跨域的網域
11/16 00:24, 10F

11/16 12:29, 6年前 , 11F
同五樓所說安全性問題 瀏覽器擋掉了 唯一解就是後端回傳
11/16 12:29, 11F

11/16 12:29, 6年前 , 12F
的表頭宣告允許 如果你只是練習用你原本的插件就夠了
11/16 12:29, 12F
感謝各位前輩回覆,已選擇使用插件。 ※ 編輯: BOMBGUY (42.76.148.168), 11/16/2018 17:48:39 ※ 編輯: BOMBGUY (42.76.148.168), 11/16/2018 17:49:22
文章代碼(AID): #1RxGofe6 (Web_Design)
文章代碼(AID): #1RxGofe6 (Web_Design)