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

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

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

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

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Q&A

解決済

2回答

1824閲覧

Ajax通信エラーの原因

Anon_tmr

総合スコア23

JavaScript

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

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

0グッド

0クリップ

投稿2017/09/29 06:30

編集2017/09/29 07:12

こんにちは。

現在JavaScriptで開発を行っている者です。

Ajax通信をsuperAgentを使用して行っているのですが、
エラーが出てしまい原因がわからずにいます。

エラーが出ているのが以下の部分です。

JavaScript

1var _request = window.superagent; 2 3function ajaxInsert(sendValue){ 4 5 sendValue["year"] = page_year; 6 sendValue["month"] = page_month; 7 sendValue["type"] = page_type; 8 9 return ajaxCommon("/allowanceUpdate", sendValue); 10} 11 12function ajaxCommon(url, sendValue){ 13 14 return new Promise( 15 function(resolve, reject){ 16 17 _request 18 .post(_context_path_ + url) 19 .type('form') 20 .send(sendValue) 21 .end(function(err, res){ 22 23 if(res){ 24 25 resolve(res); 26 }else{ 27 28 alert("通信中エラーが発生しました。編集を中断します。"); 29 alert("XMLHttpRequest : " + XMLHttpRequest.status); 30 31 _vaild_value_ = false; 32 resolve(); 33 } 34 }); 35 } 36 ); 37} 38

”通信中エラーが発生しました。編集を中断します。”という部分のエラーに引っかかっています。XMLHttpRequestのところにはundefinedと表示されていました。

undefinedと出てはいますが正直これだけだと具体的に何が原因なのかと
どこをどのように修正すれば良いのかわからないでいます。
また、これ以上詳しいエラーの原因を表示させる方法もわからなくてつまずいてしまっています。

_requestの部分の情報がサーバーにうまく渡っていないのでしょうか?

エラーの原因と修正方法ついてわかる方いらっしゃいましたらご教授お願いいたします。
足してほしいコードがあったら追記します。よろしくお願いいたします。

※追記
いただいたコメントのアドバイスをもとにエラーメッセージを表示させてみたところ、
Request has been terminated Possible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded

というエラーでした。

このエラーに見覚えがあり、解決策をご存知の方いらっしゃいましたらご教授お願いいたします。
よろしくお願いいたします。

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

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

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

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

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

karamarimo

2017/09/29 06:49

console.error(err) でエラーメッセージを表示してみてはどうでしょうか。
Anon_tmr

2017/09/29 06:52

ご回答ありがとうございます!一回その方法で表示させてみます。
guest

回答2

0

自己解決

ご回答してくださった方々ありがとうございました。

今回のエラーの原因なのですが、単にweb.xmlの記述が間違っていたことによるエラーだったようです。

なぜクロスドメインのエラーメッセージが出たのかは不明のままなのですが...

初歩的なミスで失礼しました。
クロスドメインについて少し知識をつけることが出来て勉強になりました。
ありがとうございました。

投稿2017/10/03 07:12

Anon_tmr

総合スコア23

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

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

0

XMLHttpRequest からではなく 引数の err から取得してはいかがでしょう。下記はデベロッパーツールで確認するコードです。

JavaScript

1console.error(err);

【【初心者向け】コンソールによるJavascriptのエラー表示方法】
https://eng-entrance.com/javascript-display-error


追記:

クロスドメインの問題です。

【HTTP アクセス制御 (CORS) - HTTP | MDN】
https://developer.mozilla.org/ja/docs/Web/HTTP/HTTP_access_control

【クロスドメイン問題と Access-Control-Allow-Origin ヘッダ : まだプログラマーですが何か?】
http://dotnsf.blog.jp/archives/1063051117.html

【CORS 対応時の注意点などメモ - Qiita】
https://qiita.com/umechiki/items/82dd43cd1465de5f5afe

【CORSまとめ - Qiita】
https://qiita.com/tomoyukilabs/items/81698edd5812ff6acb34

投稿2017/09/29 06:48

編集2017/09/29 07:15
kei344

総合スコア69407

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

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

Anon_tmr

2017/09/29 06:52

ご回答ありがとうございます!一回その方法で表示させて確認してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問