質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

0回答

1140閲覧

React Package.jsonの Proxyの設定

asukara123

総合スコア10

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

1クリップ

投稿2022/09/23 03:02

前提

expressでapiを作成 (localhost:4000で起動)
reactでaxiosを使ってapiを叩く

困っていること

Proxyを設定した時と設定せずにfull pathでapiを叩いた時で返ってくるデータが違う

参考コード

APIはすごくシンプルで簡素な物

js:API

1app.get("/", (req, res) => { 2 return res.json({ msg: "rootです。" }); 3});

Full Pathで叩いてみる(途中省略)

js

1axios.get("http://localhost:4000").then((res) => { 2 console.log(res.data); 3 }); 4 5// 結果 6{msg: 'rootです。'}

Package.jsonにproxyを設定して省略する

json:Package.json

1"proxy": "http://localhost:4000"

js

1// Proxyを設定したので省略して叩く 2axios.get("/").then((res) => { 3 console.log(res.data); 4 });

js

1// 結果 2 3<!DOCTYPE html> 4<html lang="en"> 5 <head> 6 <meta charset="utf-8" /> 7 <link rel="icon" href="/favicon.ico" /> 8 <meta name="viewport" content="width=device-width, initial-scale=1" /> 9 <meta name="theme-color" content="#000000" /> 10 <meta 11 name="description" 12 content="Web site created using create-react-app" 13 /> 14 <link rel="apple-touch-icon" href="/logo192.png" /> 15 <!-- 16 manifest.json provides metadata used when your web app is installed on a 17 user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/ 18 --> 19 <link rel="manifest" href="/manifest.json" /> 20 <!-- 21 Notice the use of in the tags above. 22 It will be replaced with the URL of the `public` folder during the build. 23 Only files inside the `public` folder can be referenced from the HTML. 24 25 Unlike "/favicon.ico" or "favicon.ico", "/favicon.ico" will 26 work correctly both with client-side routing and a non-root public URL. 27 Learn how to configure a non-root public URL by running `npm run build`. 28 --> 29 <title>React App</title> 30 <script defer src="/static/js/bundle.js"></script></head> 31 <body> 32 <noscript>You need to enable JavaScript to run this app.</noscript> 33 <div id="root"></div> 34 <!-- 35 This HTML file is a template. 36 If you open it directly in the browser, you will see an empty page. 37 38 You can add webfonts, meta tags, or analytics to this file. 39 The build step will place the bundled scripts into the <body> tag. 40 41 To begin the development, run `npm start` or `yarn start`. 42 To create a production bundle, use `npm run build` or `yarn build`. 43 --> 44 </body> 45</html>

考えていること

status自体は200なので叩けているとは思うのですが、なぜ返ってくる内容が違うのでしょうか?
proxyを設定してjsonデータを扱うにはどうすればよいか教えていただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2022/09/23 16:21

axios.get("/") だと react そのものの index.html が返るような。API のパスを / ではなく /api にしてみるとか…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問