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

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

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

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

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

Q&A

解決済

1回答

5851閲覧

Node.Jsでサーバを立ち上げ後426ステータスコードが帰ってきて困っています。

nobodytolove123

総合スコア61

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

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

0グッド

0クリップ

投稿2017/10/08 08:04

HTML5 level2の学習範囲としてXMLHttpRequestを学習してます、リクエストを要求するサーバがないとレスポンスやイベントの確認が行えないのでNode.jsでサーバを構築しました。

前回の範囲のWebSockectでサーバ構築しています、一応問題はないかと思いXMLHttpRequestの学習に利用しています。

サーバと接続はできましたがリクエストを送ると

"VM64:1 POST http://localhost:8080/ 426 (Upgrade Required)"

とエラーが出て処理が行えません、プロトコルをアップデートしていないことが原因らしいですが
今の僕では全然理解できません。

どうかお力をお借しいただけないでしょうか?
下にサーバ立ち上げ時のコードとXHRの処理を載せます。

サーバ

var

1var wss = new WebSokectServer({ 2 host: '0.0.0.0', 3 port: 8080 4}); 5wss.on('connection',function(ws){ 6 ws.on('mesage',function(message){ 7 console.log("require: %s",message); 8 ws.send(message); 9}); 10});

クライアント

var

1 2xhr.onreadystatechange = function(){ 3 switch(xhr.readyState){ 4 case 0: 5 console.log('Uninitialzed!'); 6 break; 7 case 1: 8 console.log('loading...'); 9 break; 10 case 2: 11 console.log('loadend'); 12 break; 13 case 3: 14 console.log('interactive...'+xhr.response.length+'byte'); 15 break; 16 case 4: 17 if(xhr.status == 200 || xhr.status == 304){ 18 console.log('COMPLETE!:'+data); 19 } else{ 20 console.log('Failed. HttpStatus:'+xhr.statusText); 21 } 22 break; 23 } 24} 25 26xhr.open('POST','http://localhost:8080',false); 27xhr.setRequestHeader('Context-Type','application/x-www-form-urlencoded'); 28xhr.abort();

バーション

node - 8.6.0

npm - 5.3.0

よろしくお願いいたします。

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

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

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

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

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

nobodytolove123

2017/10/08 08:22

詳しくは僕もわからないのですがws://はwebsocketで利用するときのみ利用できるっぽいです、urlにws://で打つと404が帰ってきてxhr接続もws://だと接続が接続されます、たいしてhttp://での接続だとページは表示され、xhrも接続はで一応できます。
nobodytolove123

2017/10/08 08:24

誤字がひどいですね...接続が切断されるです。ご回答ありがとうございます
guest

回答1

0

自己解決

理由が分からないので、httpサーバを立ち上げました。無事リクエストとレスポンスが確認できました。

上のコードだといろんな問題があります、一番の問題点としては僕のように仮想サーバを立ち上げてパソコン内で通信を行う場合はクライアントとサーバは両方立ち上げたサーバのurlを指定して通信を行わなければいけないという点です。

投稿2017/10/08 09:19

編集2017/10/08 09:25
nobodytolove123

総合スコア61

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問