##わからないこと
スプレッドシートの項目をWebAPIとして使用すべく、ウェブアプリケーションとして公開後、Fetch APIで取得できないか試しました。
WordPress上で使用しています。
Access-Control-Allow-Originのエラーが発生し、JSONをうまく取得できません。
どのようにすれば、取得できるようになるのでしょうか?
発生しているエラー
次の二つのエラーが発生しています。
ccess to fetch at 'https://script.google.com/macros/s/[スプレッドシートのid]/exec' from origin 'http://localhost:9200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
GET https://script.google.com/macros/s/[スプレッドシートのid]/exec net::ERR_FAILED
試したこと
調べたところ、admin-ajax.php、functions.phpに
次のように追加する方法もあるらしく、試しましたが変化はなかったです。
admin-ajax.php header( 'Access-Control-Allow-Origin: *' );
functions.php function add_cors_http_header(){ header("Access-Control-Allow-Origin: *"); } add_action('init','add_cors_http_header');
##コード
javascript
1 postData('https://script.google.com/macros/s/[スプレッドシートのid]/exec') 2 .then(data => console.log(JSON.stringify(data))) 3 .catch(error => console.log(error)); 4 5 function postData(url = '') { 6 return fetch(url, { 7 method: "GET", 8 mode: "cors", 9 cache: "no-cache", 10 headers: { 11 "Content-Type": "application/json; charset=utf-8", 12 "Access-Control-Allow-Origin": "*" //ここにも追加しました 13 }, 14 }) 15 .then(response => response.json()); 16 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/28 18:51
2020/04/28 18:54
2020/04/29 06:26
2020/04/29 09:11
2020/04/29 09:54 編集
2020/05/01 10:06