obnizのフォーラムは新しいシステムに移行しております。
新しいフォーラムはこちらになりますブラウザとイベントで外部API呼び出しの挙動が異なる
-
以下のコードで外部の天気APIを呼び出そうとしています。
$.ajax({
type: "GET",
scriptCharset: "utf-8",
dataType:"json",
url: "https://samples.openweathermap.org/data/2.5/forecast?id=524901&appid=b1b15e88fa797225412429c1c50c122a1",
}).done(function(data) {
console.log(data);
}).fail(function(xhr, status, error) {
console.log(xhr);
console.log(status);
console.log(error);
});このコードをブラウザから実行するとstatus = errorとなりJSONが取得できませんが、Cloudイベントとして実行するとJSONが取得できます。なぜ前者では取得できないのでしょうか?
ブラウザはChrome (mac), Safari, Firefoxで試してみましたが、いずれも結果はエラーでした。
-
自己解決しました。使用している天気APIサイト側がCORSに対応しておらず、ブラウザ内で以下のエラーが発生していました。
obniz_undefined_2018_8_27_10_10_55.html:1 Failed to load https://samples.openweathermap.org/data/2.5/forecast?id=524901&appid=b1b15e88fa797225412429c1c50c122a1: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
-
解決できたようでよかったです.
また何かありましたらお問い合わせください.