[爆卦]API 串接 練習是什麼?優點缺點精華區懶人包

為什麼這篇API 串接 練習鄉民發文收入到精華區:因為在API 串接 練習這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者BOMBGUY (Romeo)看板Web_Design標題[問題] api串接與跨域問題時間Th...


初學前端兩個月,想試試看從氣象局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
感謝k大,找方法時有找到這篇文,但是有看沒有懂,我再仔細看個清楚^ _ ^
ssccg: 初學的話你Y先搞懂為什麼要限制cross origin存取11/15
14:51
ssccg: 不是怎麼解決這問題,而是你不該這麼做11/15 14:52
Yes, sir!
pm2001: 後端唯一解11/15 17:48
QAQ
※ 編輯: BOMBGUY (223.141.123.247), 11/15/2018 17:55:52
vi000246: 我記得google已經把前端跨域的各種方式都擋死了11/15 18:16
vi000246: 這是client端的問題 你的瀏覽器幫你擋的11/15 18:17
shter: 我串火車的 ptx API 倒沒碰過這種問題11/15 23:47
今天用ptx API真的暢行無阻www
shter: 但是串接這種資料不應該用 Script src 弄進來吧11/15 23:53
shter: 用var xhr = new XMLHttpRequest()再 xhr.open('GET', url)11/15 23:55
taitzyhwan: 後端要設定允許跨域的網域11/16 00:24
inxbone: 同五樓所說安全性問題 瀏覽器擋掉了 唯一解就是後端回傳11/16 12:29
inxbone: 的表頭宣告允許 如果你只是練習用你原本的插件就夠了11/16 12:29
感謝各位前輩回覆,已選擇使用插件。
※ 編輯: BOMBGUY (42.76.148.168), 11/16/2018 17:48:39
※ 編輯: BOMBGUY (42.76.148.168), 11/16/2018 17:49:22

你可能也想看看

搜尋相關網站