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

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

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

XHTMLは、eXtensible HyperText Markup Languageの略であり、SGMLベースであるHTMLとは違って、有効なXMLドキュメントにもなるHTMLアプリケーションです。XMLベースのツールを用いて生成されるHTMLページのためによく使われるマークアップ言語です。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Ajax

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

Q&A

解決済

1回答

2682閲覧

Ajaxで、ロードなしでページを更新したい

anonyrabbit

総合スコア78

XHTML

XHTMLは、eXtensible HyperText Markup Languageの略であり、SGMLベースであるHTMLとは違って、有効なXMLドキュメントにもなるHTMLアプリケーションです。XMLベースのツールを用いて生成されるHTMLページのためによく使われるマークアップ言語です。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Ajax

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

0グッド

0クリップ

投稿2016/12/02 09:46

編集2016/12/02 12:39

リンクをクリックすると、ページのロードなしに画面が切り替わるようにしたいのですが、Javascript側でエラーとなり、問題がありましたというメッセージが出てしまいます。これはなぜでしょうか。htmlではなくxhtmlだからでしょうか?

ソースは以下のようになっています。回答よろしくお願いします。

<div class="gnavi"> <div class="col-sm-3 col-md-2 sidebar"> <ul class="nav nav-sidebar"> <li class="active"><a href="aboutservice.xhtml">概要</a></li> <li><a href="warning.xhtml">日本</a></li> <li><a href="old.xhtml"></a>ロシア</li> <li><a href="#">Export</a></li> </ul> <ul class="nav nav-sidebar"> <li><a href="">Nav item</a></li> <li><a href="">Nav item again</a></li> <li><a href="">One more nav</a></li> <li><a href="">Another nav item</a></li> <li><a href="">More navigation</a></li> </ul> <ul class="nav nav-sidebar"> <li><a href="">Nav item again</a></li> <li><a href="">One more nav</a></li> <li><a href="">Another nav item</a></li> </ul> </div> </div> <div class="pageDisplay"> </div> <script src="resources/js/pagemove.js"></script> <script src="resources/js/jquery-1.11.1.min.js"></script> <script src="bootstrap/js/bootstrap.js"></script>
$(function () { //ページを表示させる箇所の設定 var $content = $('.pageDisplay'); //ボタンをクリックした時の処理 $(document).on('click', '.gnavi a', function (event) { event.preventDefault(); //.gnavi aのhrefにあるリンク先を保存 var link = $(this).attr("href"); //リンク先が今と同じであれば遷移しない if (link === lastpage) { return false; } else { $content.fadeOut(600, function () { getPage(link); }); //今のリンク先を保存 lastpage = link; } }); //初期設定 getPage("aboutservice.xhtml"); var lastpage = "aboutservice.xhtml"; //ページを取得してくる function getPage(elm) { $.ajax({ type: 'GET', url: elm, dataType: 'xhtml', success: function (data) { $content.xhtml(data).fadeIn(600); }, error: function () { alert('問題がありました。'); } }); } });

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

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

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

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

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

kei344

2016/12/02 12:03

質問文のコードはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
anonyrabbit

2016/12/02 12:40

教えていただきありがとうございます。やりました
guest

回答1

0

ベストアンサー

ajaxのerrorについてはきちんとエラー情報を取得してください

javascript

1error: function(XMLHttpRequest, textStatus, errorThrown) { 2 console.log( textStatus); 3},

おそらくこれでパースエラーあたりがでていませんか

投稿2016/12/02 10:10

yambejp

総合スコア114572

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

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

anonyrabbit

2016/12/02 10:22

回答ありがとうございます。おっしゃる通り、parseerrorが出ていました。どうすれば良いでしょうか。。
yambejp

2016/12/02 11:16

まずはdataTypeを'text'にして、単なるテキストベースでデータのやり取りをしてください その上で想定するxhtml形式のデータをajax先が返すことを確認した上で dataTypeを戻してください
anonyrabbit

2016/12/02 11:32

pagemove.js:39 Uncaught TypeError: $content.xhtml is not a function at Object.success (http://localhost:8080/Kaguya/resources/js/pagemove.js:39:26) at fire (http://localhost:8080/Kaguya/resources/js/jquery-1.11.1.min.js:3119:30) at Object.fireWith [as resolveWith] (http://localhost:8080/Kaguya/resources/js/jquery-1.11.1.min.js:3231:7) at done (http://localhost:8080/Kaguya/resources/js/jquery-1.11.1.min.js:9275:14) at XMLHttpRequest.callback (http://localhost:8080/Kaguya/resources/js/jquery-1.11.1.min.js:9685:8)success @ pagemove.js:39fire @ jquery-1.11.1.min.js:3119fireWith @ jquery-1.11.1.min.js:3231done @ jquery-1.11.1.min.js:9275callback @ jquery-1.11.1.min.js:9685 dataTypeをtextにしたところparseerrorは消えたのですが、このようなエラーが出てしまいました。調べてもわからなかったのですがお分かりになりますでしょうか。。
yambejp

2016/12/02 13:14

そりゃtextなのでパースエラーは消えますよ success: function (data) { console.log(data); } で戻ってきた形式を確認し、想定したxhtml形式(?)でデータを返すように ajax先の出力を調整してください html形式で取得して$content.html()で展開するんですよね? 「xhtml()なんて関数ねーよ」ってエラーがでてますので なにを参考にしたかわからないので、なんとも言えません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問