[问题] api串接与跨域问题(已解决)

楼主: BOMBGUY (嘣嘣嘣)   2018-11-15 14:05:21
初学前端两个月,想试试看从气象局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)
作者: kyrc (橘子)   2018-11-15 14:44:00
作者: ssccg (23)   2018-11-15 14:52:00
不是怎么解决这问题,而是你不该这么做
作者: pm2001 (做个盾牌眼球兵吧)   2018-11-15 17:48:00
后端唯一解
作者: vi000246 (Vi)   2018-11-15 18:16:00
我记得google已经把前端跨域的各种方式都挡死了这是client端的问题 你的浏览器帮你挡的
作者: shter (飞梭之影)   2018-11-15 23:47:00
我串火车的 ptx API 倒没碰过这种问题但是串接这种资料不应该用 Script src 弄进来吧用var xhr = new XMLHttpRequest()再 xhr.open('GET', url)
作者: taitzyhwan (资本主义)   2018-11-16 00:24:00
后端要设定允许跨域的网域
作者: inxbone (高级少量糖果)   2018-11-16 12:29:00
同五楼所说安全性问题 浏览器挡掉了 唯一解就是后端回传的表头宣告允许 如果你只是练习用你原本的插件就够了

Links booklink

Contact Us: admin [ a t ] ucptt.com