はじめに
以下の書籍を行っていたときに遭遇したエラーについてまとめています
試行錯誤の段階で発生したもので、参考になる方は少数かとは思います
問題
書籍の一覧を取得するAPIを作成しました
watanabejin@watanabejin-Latitude-3520:~$ curl http://localhost:8080/book/list
{"book_list":[{"id":100,"title":"Kotlin","author":"taro","is_rental":false},{"id":200,"title":"Java","author":"judy","is_rental":false}]}
そしてこのAPIを使ってVue.jsから画面に表示しようとしたところCORSエラー
になりました
そして、CORSを解決しようと試行錯誤していると、いままでアクセスできていたAPIが何も表示しなくなりました
watanabejin@watanabejin-Latitude-3520:~$ curl http://localhost:8080/book/list
そこで、localhost:8080/book/list
にブラウザでアクセスしたところ見覚えのないログイン画面が表示されるようになりました
URLはlocalhost:8080/login
なのでリダイレクトされてこのページに飛ばされてしまっているようで、それが原因でレスポンスが正しく帰ってきていないようです
ログイン画面を作成した記憶はなかったのでとても不思議でした
また作成したAPIを停止するとアクセスできなくなるため、何かしらKotlin側に問題がありそうでした
解決方法
以下の記事を読んで判明しました
CORSを解決するために試行錯誤している段階でspring-boot-starter-security
を依存関係に追加していたのが原因だったようです
implementation('org.springframework.boot:spring-boot-starter-security')
依存関係から削除したところAPIが通常通り動きました
CORSはどう解決したか
CORS問題ですが以下の記事を参考にしたところ正常に動きました
@CrossOrigin
↓
@CrossOrigin(origins = ["http://localhost:8081"], allowCredentials = "true")
おわりに
CORSの箇所はかなり時間がかかって調べていてもよくわからず途方に暮れていました
ダメ元でQiitaをちょくに検索したら見覚えのある本の記事があり、本当に助かりました
書籍のつまづいたポイントを記事にすることは価値があるんだなとあらためて思いました
参考