Liff上でGASにリクエストを送りたい

実現したいこと

クライアントサイドからサーバーサイド(GAS)にリクエストし、googleスプレッドシートに
クライアントサイドで入力した値を反映させたいのですが、参考にしたサイトと同じ実装をするとCORSエラーと、ステータスが200で返ってきているのにNET::error_failedとなります。
$.ajax等でリクエストもしてみましたがうまくいかず、知恵をお借りしたいです。
よろしくお願いいたします。

前提

発生している問題・エラーメッセージ

POST https://********net::ERR_FAILED 200 (OK) Access to XMLHttpRequest at 'https://*******' from origin 'https://***' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

クライアントサイド

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>LIFF Stripe Checkout</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rossorigin="anonymous"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/themes/base/jquery-ui.min.css"> </head> <body> <form class="w-75 mx-auto"> <p class="mt-3">名前</p> <div> <input class="form-control w-100 mt-1" name="name" placeholder="" required> </div> <p class="mt-3">腕立て</p> <div> <input class="form-control w-100 mt-1" name="udetate" required> </div> <p class="mt-3">腹筋</p> <div> <input class="form-control w-100 mt-1" name="fukkin" required> </div> <p class="mt-3">背筋</p> <div> <input class="form-control w-100 mt-1" name="haikin" required> </div> <p class="mt-3">スクワット</p> <div> <input class="form-control w-100 mt-1" name="sukuwat" required> </div> </form> <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" crossorigin="anonymous"></script> <script src="https://static.line-scdn.net/liff/edge/2.1/sdk.js"></script> <script> liff.init({ liffId: '*****' }).catch((err) => { console.log(err); }); liff.ready.then(() => { if (!liff.isLoggedIn()) { liff.login(); } const idToken = liff.getDecodedIDToken(); const userId = idToken.sub; $('form').append(`<input type="hidden" name="userId" value="${userId}">`); $('form').append(`<input type="submit" class="mt-4 btn btn-primary" value="送信">`); }) $('form').submit(function( event ) { event.preventDefault(); $.post('https://**********', $('form').serialize() ); }); </script> </body> </html>

参考サイト

https://qiita.com/njn0te/items/b35a6eb6fa88372b4dc0

コメントを投稿

0 コメント