{"id":3988,"date":"2023-07-10T16:08:34","date_gmt":"2023-07-10T07:08:34","guid":{"rendered":"http:\/\/attacktube.com\/?p=3988"},"modified":"2023-07-10T16:54:28","modified_gmt":"2023-07-10T07:54:28","slug":"%e3%80%90node-js%e3%80%91%e3%82%af%e3%83%ad%e3%82%b9%e3%82%aa%e3%83%aa%e3%82%b8%e3%83%b3%e8%a6%81%e6%b1%82%e3%82%92%e3%83%96%e3%83%ad%e3%83%83%e3%82%af%e3%81%97%e3%81%be%e3%81%97%e3%81%9f","status":"publish","type":"post","link":"https:\/\/attacktube.com\/?p=3988","title":{"rendered":"\u3010Node.js\u3011\u30af\u30ed\u30b9\u30aa\u30ea\u30b8\u30f3\u8981\u6c42\u3092\u30d6\u30ed\u30c3\u30af\u3057\u307e\u3057\u305f\u3010\u89e3\u6c7a\u7b56\u3011"},"content":{"rendered":"\n<p>Node.js\u306b\u304a\u3044\u3066\u3001\u6b21\u306e\u3088\u3046\u306a\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u30d6\u30e9\u30a6\u30b6\u306e\u30b3\u30f3\u30bd\u30fc\u30eb\u306b\u51fa\u3066\u6765\u308b\u3053\u3068\u304c\u3042\u308b\u3002<br>\u3053\u306e\u30a8\u30e9\u30fc\u306fCORS(Cross-Origin Resouce Sharing)\u306e\u8a2d\u5b9a\u3092\u3059\u308b\u3068\u51fa\u306a\u304f\u306a\u308b\u3002<\/p>\n\n\n\n<p>\u3053\u306e\u30a8\u30e9\u30fc\u306f\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304chttp:\/\/192.168.2.100:80(html\u30d5\u30a1\u30a4\u30eb)\u304b\u3089\u3001\u30b5\u30fc\u30d0\u30fc\u5074\u306ehttp:\/\/192.168.2.100:3000(Node.js\u306ejs\u30d5\u30a1\u30a4\u30eb)\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3088\u3046\u3068\u3059\u308b\u3068\u3001CORS\u306e\u8a2d\u5b9a\u304c\u306a\u3044\u305f\u3081\u306b\u30a8\u30e9\u30fc\u306b\u306a\u308b\u3002<\/p>\n\n\n\n<pre><code>\n\u30af\u30ed\u30b9\u30aa\u30ea\u30b8\u30f3\u8981\u6c42\u3092\u30d6\u30ed\u30c3\u30af\u3057\u307e\u3057\u305f: \u540c\u4e00\u751f\u6210\u5143\u30dd\u30ea\u30b7\u30fc\u306b\u3088\u308a\u3001http:\/\/192.168.2.100:3000\/socket.io\/?EIO=4&amp;transport=polling&amp;t=Oa-dgsr \u306b\u3042\u308b\u30ea\u30e2\u30fc\u30c8\u30ea\u30bd\u30fc\u30b9\u306e\u8aad\u307f\u8fbc\u307f\u306f\u62d2\u5426\u3055\u308c\u307e\u3059 (\u7406\u7531: CORS \u30d8\u30c3\u30c0\u30fc \u2018Access-Control-Allow-Origin\u2019 \u304c\u8db3\u308a\u306a\u3044)\u3002\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9: 200\n<\/code><\/pre>\n\n\n\n<!--more-->\n\n\n\n<br>\n<script async=\"\" src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-3461056110605997\" crossorigin=\"anonymous\"><\/script>\n<ins class=\"adsbygoogle\" style=\"display:block; text-align:center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-3461056110605997\" data-ad-slot=\"3137443461\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n<br>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/attacktube.com\/wp-content\/uploads\/2023\/07\/20230710-1.jpg\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"524\" src=\"https:\/\/i0.wp.com\/attacktube.com\/wp-content\/uploads\/2023\/07\/20230710-1.jpg?resize=1024%2C524\" alt=\"\" class=\"wp-image-3990\" srcset=\"https:\/\/i0.wp.com\/attacktube.com\/wp-content\/uploads\/2023\/07\/20230710-1.jpg?resize=1024%2C524&amp;ssl=1 1024w, https:\/\/i0.wp.com\/attacktube.com\/wp-content\/uploads\/2023\/07\/20230710-1.jpg?resize=300%2C154&amp;ssl=1 300w, https:\/\/i0.wp.com\/attacktube.com\/wp-content\/uploads\/2023\/07\/20230710-1.jpg?resize=768%2C393&amp;ssl=1 768w, https:\/\/i0.wp.com\/attacktube.com\/wp-content\/uploads\/2023\/07\/20230710-1.jpg?resize=1536%2C786&amp;ssl=1 1536w, https:\/\/i0.wp.com\/attacktube.com\/wp-content\/uploads\/2023\/07\/20230710-1.jpg?resize=304%2C156&amp;ssl=1 304w, https:\/\/i0.wp.com\/attacktube.com\/wp-content\/uploads\/2023\/07\/20230710-1.jpg?resize=282%2C144&amp;ssl=1 282w, https:\/\/i0.wp.com\/attacktube.com\/wp-content\/uploads\/2023\/07\/20230710-1.jpg?w=1913&amp;ssl=1 1913w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n\n\n\n<p>\u3053\u306e\u30a8\u30e9\u30fc\u304c\u51fa\u308bhtml,js\u3092\u6b21\u306b\u793a\u3059\u3002<\/p>\n\n\n\n<p>client.html<\/p>\n\n\n\n<pre><code>\n&lt;!DOCTYPE html&gt;\n&lt;html lang=&quot;ja&quot;&gt;\n&lt;head&gt;\n  &lt;title&gt;Socket.io \u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9(1)\uff5e\u8d85\u7c21\u6613\u30c1\u30e3\u30c3\u30c8\u30a2\u30d7\u30ea\uff5e&lt;\/title&gt;\n  &lt;script src=&quot;https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/socket.io\/4.7.1\/socket.io.js&quot;&gt;&lt;\/script&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n  &lt;h1&gt;Socket.io \u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9(1)\uff5e\u8d85\u7c21\u6613\u30c1\u30e3\u30c3\u30c8\u30a2\u30d7\u30ea\uff5e&lt;\/h1&gt;\n\n  &lt;input type=&quot;text&quot; id=&quot;messageInput&quot;&gt;\n  &lt;button onclick=&quot;sendMessage()&quot;&gt;\u9001\u4fe1&lt;\/button&gt;\n\n  &lt;ul id=&quot;messageList&quot;&gt;&lt;\/ul&gt;\n\n  &lt;script&gt;\n    \/\/\u3053\u306e\u51e6\u7406\u3067\u30b5\u30fc\u30d0\u30fc\u3068\u901a\u4fe1\u3092\u3057\u3066\u3044\u308b\u306a\u3002\n    const socket = io(&#039;http:\/\/192.168.2.100:3000&#039;);\n    \n    \/\/ \u30b5\u30fc\u30d0\u30fc\u304b\u3089\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u53d7\u4fe1\n    socket.on(&#039;message&#039;, (data) =&gt; {\n      \/\/ HTML\u5185\u306eID=messageList\u300d\u3092\u6301\u3064\u8981\u7d20\u3092\u53d6\u5f97\u3059\u308b\u3002\n      const messageList = document.getElementById(&#039;messageList&#039;);\n      \/\/ \u65b0\u3057\u3044li\u8981\u7d20\u3092\u4f5c\u6210\u3059\u308b\u3002li\u8981\u7d20\u306f\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u30ea\u30b9\u30c8\u30a2\u30a4\u30c6\u30e0\u3068\u3057\u3066\u8868\u793a\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u308b\u3002\n      const li = document.createElement(&#039;li&#039;);\n      \/\/ li\u8981\u7d20\u306e\u30c6\u30ad\u30b9\u30c8\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u53d7\u4fe1\u3057\u305f\u30e1\u30c3\u30bb\u30fc\u30b8(data)\u306b\u8a2d\u5b9a\u3059\u308b\u3002\n      li.textContent = data;\n      \/\/ li\u8981\u7d20\u3092messageList\u8981\u7d20\u306b\u8ffd\u52a0\u3059\u308b\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u53d7\u4fe1\u3057\u305f\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u30ea\u30b9\u30c8\u5185\u306b\u8868\u793a\u3055\u308c\u308b\u3002\n      messageList.appendChild(li);\n    });\n\n    \/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u9001\u4fe1\n    function sendMessage() {\n      \/\/ HTML\u5185\u306eID=messageInput\u300d\u3092\u6301\u3064\u8981\u7d20\u3092\u53d6\u5f97\u3059\u308b\u3002\n      const messageInput = document.getElementById(&#039;messageInput&#039;);\n      \/\/ \u30c6\u30ad\u30b9\u30c8\u5165\u529b\u6b04\u306e\u5024\u3092\u5909\u6570message\u306b\u4ee3\u5165\u3059\u308b\u3002\n      const message = messageInput.value;\n      \/\/ \u30c6\u30ad\u30b9\u30c8\u5165\u529b\u6b04\u306e\u5024\u3092\u7a7a\u6587\u5b57\u306b\u3059\u308b\u3002\n      messageInput.value = &#039;&#039;;\n\n      \/\/ \u30b5\u30fc\u30d0\u30fc\u306b\u5bfe\u3057\u3066 message \u3068\u3044\u3046\u540d\u524d\u306e\u30a4\u30d9\u30f3\u30c8\u3092\u9001\u4fe1\u3059\u308b\u3002\n      \/\/ \u3053\u3053\u3067 message \u306f\u4efb\u610f\u306e\u540d\u524d\u3067\u3001\u30b5\u30fc\u30d0\u30fc\u5074\u3067\u53d7\u3051\u53d6\u308b\u969b\u306b\u30a4\u30d9\u30f3\u30c8\u540d\u3068\u3057\u3066\u4f7f\u7528\u3055\u308c\u308b\u3002\n      socket.emit(&#039;message&#039;, message);\n    }\n\n  &lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;\n<\/code><\/pre>\n\n\n\n<p>server_http.js<br>CORS(Cross-Origin Resouce Sharing)\u306e\u8a2d\u5b9a\u3092\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3059\u308b\u3068\u30d6\u30e9\u30a6\u30b6\u306e\u30b3\u30f3\u30bd\u30fc\u30eb\u306b\u30a8\u30e9\u30fc\u304c\u51fa\u308b\u3002\u3064\u307e\u308a\u3001CORS(Cross-Origin Resouce Sharing)\u306e\u8a2d\u5b9a\u3092\u3059\u308b\u3068\u30a8\u30e9\u30fc\u304c\u51fa\u306a\u304f\u306a\u308b\u3002<\/p>\n\n\n\n<pre><code>\n\nconst hostname = &#039;192.168.2.100&#039;;\nconst port = 3000;\n\n\/\/ http\u30e2\u30b8\u30e5\u30fc\u30eb\u3092require\u3092\u4f7f\u3063\u3066\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u3066\u5909\u6570http\u306b\u683c\u7d0d\u3059\u308b\u3002\nconst http = require(&#039;http&#039;);\n\n\/\/ http\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304b\u3089createServer\u30e1\u30bd\u30c3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3002\n\/\/ http.createServer()\u306e\u623b\u308a\u5024\u306f\u3001http.Server\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3067\u3042\u308b\u3002\n\/\/ \u3064\u307e\u308a\u5909\u6570server\u306b\u306f\u3001http.Server\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u304c\u683c\u7d0d\u3059\u308b\u3002\nconst server = http.createServer();\n\n\/\/ Socket.IO\u306e\u521d\u671f\u5316\n\/\/ http:\/\/192.168.2.100:3000\/socket.io\/socket.io.js\u306b\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u306b\u306a\u308b\u3002\nconst io = require(&#039;socket.io&#039;)(server,{\n  \/\/ CORS(Cross-Origin Resouce Sharing)\u306e\u8a2d\u5b9a\n\/*\n  cors: {\n    \/\/ \u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3057\u3066\u3082\u6b63\u5e38\u306b\u52d5\u304f\u3002\n    \/\/ \u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3057\u305f\u3089\u3001origin: &#039;*&#039;\u3068\u540c\u3058\u8a2d\u5b9a\u306b\u306a\u308b\u3002\n    origin: [&#039;http:\/\/localhost&#039;, &#039;http:\/\/127.0.0.1&#039;,&#039;https:\/\/localhost&#039;, &#039;https:\/\/127.0.0.1&#039;,&#039;http:\/\/192.168.2.100&#039;,&#039;https:\/\/192.168.2.100&#039;],\n    \/\/\u5168\u3066\u306eURL\u3092\u6307\u5b9a\u3059\u308b\u3068\u304d\u306f*\u3092\u4f7f\u3046\u3002\n    \/\/origin: &#039;*&#039;,\n  },\n*\/\n});\n\n\/\/ \u30b5\u30fc\u30d0\u30fc\u306f\u6307\u5b9a\u3057\u305f\u30dd\u30fc\u30c8\u3068\u30db\u30b9\u30c8\u3067\u63a5\u7d9a\u3092\u5f85\u3061\u53d7\u3051\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304b\u3089\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u805e\u3044\u3066\u53d7\u3051\u4ed8\u3051\u308b\u72b6\u614b\u306b\u306a\u308b\u3002\n\/\/ \u3053\u3053\u3067\u306e\u300clisten\u300d\u306f\u6587\u5b57\u901a\u308a\u300c\u63a5\u7d9a\u306e\u5f85\u3061\u53d7\u3051\u300d\u3084\u300c\u53d7\u4fe1\u3092\u8074\u304f\u300d\u3068\u3044\u3046\u610f\u5473\u3067\u4f7f\u308f\u308c\u3066\u3044\u308b\u3002\nserver.listen(port, hostname,() =&gt; {\n  console.log(`Server running at http:\/\/${hostname}:${port}\/`);\n});\n\n\/\/ \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u5074\u3067 socket.emit(&#039;message&#039;, message); \n\/\/ \u3092\u5b9f\u884c\u3059\u308b\u3068\u3001\u30b5\u30fc\u30d0\u30fc\u306e io.on(&#039;message&#039;, ...) \u3067\u5b9a\u7fa9\u3055\u308c\u305f\n\/\/ \u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u95a2\u6570\u304c\u547c\u3073\u51fa\u3055\u308c\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304b\u3089\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u53d7\u4fe1\u3055\u308c\u308b\u3002\nio.on(&#039;connection&#039;, (socket) =&gt; {\n  console.log(&#039;\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304c\u63a5\u7d9a\u3057\u307e\u3057\u305f&#039;);\n\n  \/\/ \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304b\u3089\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u53d7\u4fe1\n  \/\/ \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u5074\u3067 socket.emit(&#039;message&#039;, message); \u3092\u5b9f\u884c\u3059\u308b\u3068\u3001\n  \/\/ \u30b5\u30fc\u30d0\u30fc\u5074\u3067\u5b9a\u7fa9\u3055\u308c\u305f socket.on(&#039;message&#039;, ...) \u306e\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u95a2\u6570\n  \/\/ \u304c\u5b9f\u884c\u3055\u308c\u308b\u3068\u3044\u3046\u6d41\u308c\u306b\u306a\u308a\u307e\u3059\u3002\n  socket.on(&#039;message&#039;, (data) =&gt; {\n    console.log(&#039;\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304b\u3089\u306e\u30e1\u30c3\u30bb\u30fc\u30b8:&#039;, data);\n    \/\/ \u53d7\u4fe1\u3057\u305f\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u5168\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u9001\u4fe1\n    \/\/ \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u5074\u3067socket.emit(&#039;message&#039;, message);\u3092\u5b9f\u884c\u3057\u305f\u4eba\u3082\u542b\u3081\u3066\u9001\u308b\u3002\n    io.emit(&#039;message&#039;, data);\n  });\n\n  \/\/ \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3068\u306e\u63a5\u7d9a\u304c\u5207\u65ad\u3055\u308c\u305f\u3068\u304d\u306e\u51e6\u7406\n  socket.on(&#039;disconnect&#039;, () =&gt; {\n    console.log(&#039;\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304c\u5207\u65ad\u3057\u307e\u3057\u305f&#039;);\n  });\n});\n<\/code><\/pre>\n\n\n\n<p>\u30af\u30ed\u30b9\u30aa\u30ea\u30b8\u30f3(Cross Origin)\u3068\u306f\u4f55\u304b\uff1f<br>\u30aa\u30ea\u30b8\u30f3 =\u60c5\u5831\u6e90=source=URL\u3068\u899a\u3048\u3066\u304a\u3051\u3070\u826f\u3044\u3002<br>\u300c\u30af\u30ed\u30b9\u30aa\u30ea\u30b8\u30f3\uff08Cross-Origin\uff09\u300d\u3068\u3044\u3046\u7528\u8a9e\u306f\u3001\u76f4\u8a33\u3059\u308b\u3068\u300c\u60c5\u5831\u6e90\u304c\u4ea4\u5dee\u3059\u308b\u300d\u3068\u3044\u3046\u610f\u5473\u306b\u306a\u308a\u3001\u7570\u306a\u308b\u30aa\u30ea\u30b8\u30f3\u9593\u306e\u5236\u7d04\u3084\u5236\u9650\u304c\u4ea4\u5dee\u3059\u308b\u3053\u3068\u3092\u6307\u304a\u308a\u3001\u5b9f\u969b\u306b\u306f\u7570\u306a\u308b\u30aa\u30ea\u30b8\u30f3\u9593\u306e\u5236\u7d04\u3092\u6307\u3059\u8a00\u8449\u3068\u3057\u3066\u4f7f\u7528\u3055\u308c\u3066\u3044\u308b\u3002<br>\u7570\u306a\u308b\u30aa\u30ea\u30b8\u30f3\u9593\u3067\u306f\u3001\u30d6\u30e9\u30a6\u30b6\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30dd\u30ea\u30b7\u30fc\u306b\u3088\u3063\u3066\u3055\u307e\u3056\u307e\u306a\u5236\u7d04\u304c\u9069\u7528\u3055\u308c\u308b\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u7570\u306a\u308b\u30aa\u30ea\u30b8\u30f3\u9593\u306e\u30ea\u30bd\u30fc\u30b9\u5171\u6709\u3084\u901a\u4fe1\u304c\u5236\u9650\u3055\u308c\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u4e0a\u306e\u8106\u5f31\u6027\u3084\u60aa\u610f\u306e\u3042\u308b\u653b\u6483\u3092\u9632\u6b62\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3002<br>\u7570\u306a\u308b\u30aa\u30ea\u30b8\u30f3\u9593\u3067\u306e\u60c5\u5831\u306e\u4ea4\u63db\u3084\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u9001\u4fe1\u306b\u306f\u3001\u30af\u30ed\u30b9\u30aa\u30ea\u30b8\u30f3\u30ea\u30af\u30a8\u30b9\u30c8\u3084CORS\uff08Cross-Origin Resource Sharing\uff09\u306a\u3069\u306e\u8a2d\u5b9a\u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30d6\u30e9\u30a6\u30b6\u306f\u9069\u5207\u306a\u5236\u7d04\u3092\u9069\u7528\u3057\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u7dad\u6301\u3057\u306a\u304c\u3089\u7570\u306a\u308b\u30aa\u30ea\u30b8\u30f3\u9593\u306e\u901a\u4fe1\u3092\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u308b\u3002<br>\u3057\u305f\u304c\u3063\u3066\u3001\u300c\u30af\u30ed\u30b9\u30aa\u30ea\u30b8\u30f3\u300d\u3068\u3044\u3046\u7528\u8a9e\u306f\u3001\u7570\u306a\u308b\u30aa\u30ea\u30b8\u30f3\u9593\u306e\u5236\u7d04\u3084\u5236\u9650\u304c\u4ea4\u5dee\u3059\u308b\u3053\u3068\u3092\u8868\u73fe\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u308b\u3002<br>\u3064\u307e\u308a\u3001\u300c\u30af\u30ed\u30b9\u30aa\u30ea\u30b8\u30f3\u300d\u81ea\u4f53\u304c\u30a8\u30e9\u30fc\u3092\u793a\u3059\u308f\u3051\u3067\u306f\u306a\u3044\u3002<br>\u30b5\u30fc\u30d0\u30fc\u30b5\u30a4\u30c9\u306eNode.js\u306eCORS\u306e\u8a2d\u5b9a\u306f\u3001\u30af\u30ed\u30b9\u30aa\u30ea\u30b8\u30f3\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u8a31\u53ef\u3059\u308b\u305f\u3081\u306e\u8a2d\u5b9a\u3067\u3042\u308b\u3002\u3053\u306e\u8a2d\u5b9a\u306f\u30d6\u30e9\u30a6\u30b6\u306b\u3088\u3063\u3066\u5236\u9650\u3055\u308c\u308b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30dd\u30ea\u30b7\u30fc\u3092\u56de\u907f\u3059\u308b\u305f\u3081\u306e\u3082\u306e\u3067\u3042\u308b\u3002<br><br>\u7570\u306a\u308b\u30aa\u30ea\u30b8\u30f3\u306f\u3068\u306f\u3001\u30d7\u30ed\u30c8\u30b3\u30eb(http\u3001https)\u3001\u30db\u30b9\u30c8\u540d\u3001\u304a\u3088\u3073\u30dd\u30fc\u30c8\u756a\u53f7\u304c\u7570\u306a\u308b\u5834\u5408\u306b\u6210\u7acb\u3059\u308b\u3002\u3064\u307e\u308a\u3001IP\u30a2\u30c9\u30ec\u30b9\u3084\u30db\u30b9\u30c8\u540d\u304c\u540c\u3058\u3067\u3082\u3001\u30dd\u30fc\u30c8\u756a\u53f7\u3084\u30d7\u30ed\u30c8\u30b3\u30eb(http\u304bhttps)\u304c\u7570\u306a\u308b\u5834\u5408\u306f\u7570\u306a\u308b\u30aa\u30ea\u30b8\u30f3\u3068\u898b\u306a\u3055\u308c\u308b\u3002<\/p>\n\n\n\n<script type=\"text\/javascript\">\njQuery(function($){\n$(\".jp-video\").hide();\n});\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Node.js\u306b\u304a\u3044\u3066\u3001\u6b21\u306e\u3088\u3046\u306a\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u30d6\u30e9\u30a6\u30b6\u306e\u30b3\u30f3\u30bd\u30fc\u30eb\u306b\u51fa\u3066\u6765\u308b\u3053\u3068\u304c\u3042\u308b\u3002\u3053\u306e\u30a8\u30e9\u30fc\u306fCORS(Cross-Origin Resouce Sharing)\u306e\u8a2d\u5b9a\u3092\u3059\u308b\u3068\u51fa\u306a\u304f\u306a\u308b\u3002 \u3053\u306e\u30a8\u30e9\u30fc\u306f\u30af\u30e9\u30a4 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[6],"tags":[],"class_list":["post-3988","post","type-post","status-publish","format-standard","hentry","category-node-js"],"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/attacktube.com\/index.php?rest_route=\/wp\/v2\/posts\/3988","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/attacktube.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/attacktube.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/attacktube.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/attacktube.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3988"}],"version-history":[{"count":11,"href":"https:\/\/attacktube.com\/index.php?rest_route=\/wp\/v2\/posts\/3988\/revisions"}],"predecessor-version":[{"id":4008,"href":"https:\/\/attacktube.com\/index.php?rest_route=\/wp\/v2\/posts\/3988\/revisions\/4008"}],"wp:attachment":[{"href":"https:\/\/attacktube.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3988"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/attacktube.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3988"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/attacktube.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3988"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}