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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

Q&A

解決済

4回答

11810閲覧

HTMLでログイン画面を作っているのですが、ログインに失敗してしまいます。コンソールにエラーメッセージを表示させたいです。

Tan3

総合スコア39

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

0グッド

0クリップ

投稿2016/02/24 02:24

編集2016/02/24 10:22

youtubeのチュートリアルを参考にワンタップゲームを作っています。
ログイン画面を作るところでつまずいています。
ログインに失敗というアラートがでてしまいます。
アプリを作るのは初めてなので右も左もわかりません。
ご教授お願いいたします。

(アプリキーとクライアントキーは偽です。)

発生している問題

  1. ログイン画面はできたのですが、ログインに失敗してしまう。

2.コンソールにエラーメッセージを表示させたい。
console.error("表示テスト");は何行目に入れたらよろしいでしょうか?

問題の発生している環境

HTML5
iMac(10.11.2)
Chrome(48.0.2564.116 (64-bit))

<html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <meta http-equiv="Content-Security-Policy" content="default-src * data:; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'"> <link rel="stylesheet" href="components/loader.css"> <link rel="stylesheet" href="css/style.css"> <script src="components/loader.js"></script> <script src="js/ncmb-2.0.0.min.js"></script> <script> $(function(){ //mBaaSの初期化 var application_key = "0c266079f782bc9dcd58139798337ba17ea41f09077ae93f621541c4ccf20000"; var client_key = "c6937216c6a4aecfc9a066e42a746bb58520133c9f0a79e5e1e7949177be0000"; var ncmb = new NCMB(application_key, client_key); //ログイン・新規処理 $("form").on("submit", function() { var username = $("#username").val(); var password = $("#password").val(); // ユーザー名とパスワードでログイン ncmb.User.login("username", "password") .then(function(data) { // ログイン後処理 alert("ログイン成功"); }) .catch(function(err) { // エラー処理 var user = new ncmb.User({ userName: username, password: password }); //新規登録 user.signUpByAccount() .then(function() { //ログイン ncmb.User.login("username", "password") .then(function(data) { // ログイン成功 alert("新規登録&ログイン成功"); }); }); }); }); }); </script> <style> body{ background-color: #BBDEFB; padding-top: 20px; font-family: Verdana, sans-serif; } form{ padding: 30px auto; text-align: center; } input{ border-radius: 5px; padding: 7px; margin-bottom: 10px; width: 200px; font-size: 20px; } </style> </head> <body> <form> <input type="text" id="username" placeholder="User name" /> <input type="password" id="password" placeholder="Password" /> <input type="submit" value="Register/Login" /> </form> </body> </html>

コンソール

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

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

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

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

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

maisumakun

2016/02/24 02:29

シークレットキーを書いてしまっていますが、本当の値ではないですよね?(もし本物なら、今すぐにキーを作り変えておくことをおすすめします)
Tan3

2016/02/24 02:46

再生成しました。ありがとうございました。
guest

回答4

0

ベストアンサー

これで上手くいくみたいでした。

こういうjavascriptの問題では、catch句の中で
alert(err);
を実行したときのエラーメッセージも記載しておくと、回答しやすくなると思います

<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <meta http-equiv="Content-Security-Policy" content="default-src * data:; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'"> <link rel="stylesheet" href="components/loader.css"> <link rel="stylesheet" href="css/style.css"> <script src="components/loader.js"></script> <script src="js/ncmb-2.0.0.min.js"></script> <script> $(function(){ //mBaaSの初期化 var application_key = "アプリケーションキー"; var client_key = "クライアントキー"; var ncmb = new NCMB(application_key, client_key); //ログイン・新規処理 $("form").on("submit", function() { var username = $("#username").val(); var password = $("#password").val(); alert(username); // ユーザー名とパスワードでログインここがちがう ncmb.User.login(username, password) .then(function(data) { // ログイン後処理 alert("ログイン成功"); }) .catch(function(err) { //ログイン失敗 var user = new ncmb.User({ userName:username, password:password }); //新規登録 user.signUpByAccount() .then(function(){ // ログイン ncmb.User.login(username,password) .then(function(){ //ログイン成功 alert("新規登録&ログイン成功"); }); }); }); return false; }); // セミコロンなかったよ }); // この行なかったよ </script> <style> body{ background-color: #BBDEFB; padding-top: 20px; font-family: Verdana, sans-serif; } form{ padding: 30px auto; text-align: center; } input{ border-radius: 5px; padding: 7px; margin-bottom: 10px; width: 200px; font-size: 20px; } </style> </head> <body> <form> <input type="text" id="username" placeholder="User name" /> <input type="password" id="password" placeholder="Password" /> <input type="submit" value="Register/Login" /> </form> </body> </html>

投稿2016/02/26 09:28

編集2016/02/26 09:47
pencil

総合スコア34

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

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

Tan3

2016/03/03 07:48

pencilさん 丁寧にソースに解説を書いてくださってありがとうございます。 すみません、 >こういうjavascriptの問題では、catch句の中で alert(err); を実行したときのエラーメッセージも記載しておくと、回答しやすくなると思います が、よくわかりません・・・。 ともあれ、解決してほっとしました。 ありがとうございました。
guest

0

ncmb.User,login(username, password)

じゃなく

ncmb.User.login(username, password)

ではないですか?
(ncmb.Userのloginメソッドを呼ぶ?)

投稿2016/02/24 03:32

hato_pato

総合スコア215

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

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

Tan3

2016/02/24 03:45

ありがとうございます。 ご指摘の箇所を修正したのですが、まだログイン画面が反応しません。
hato_pato

2016/02/24 05:08

シンプルにこの形にしてから エラー時の処理を追加してみてください。 // ユーザー名とパスワードでログイン ncmb.User.login("Yamada Tarou", "password") .then(function(data){ // ログイン後処理 }) .catch(function(err){ // エラー処理 }); ちなみにソース見ると、セミコロンが足りてないように見えます。 (return falseの直前の部分) やりたいことは、これですよね? http://mb.cloud.nifty.com/doc/current/sdkguide/javascript/user.html
Tan3

2016/02/24 08:57

hato_patoさん  ありがとうございます。 シンプルにしました。見やすくなりました。 ですが、alertが動作しません・・・ やりたいことは、まさにそれです。 たびたびすみません。
hato_pato

2016/02/24 09:35

dateさんのコメントの通り、passwordのスペルミスが原因じゃ。。。
hato_pato

2016/02/24 09:39

かっこ足りないかな?? 別回答でソース貼りますね
guest

0

まずはコンソールでエラーを確認してみましょう。エラーが出ています。

javascript

140行目.then(funtion() { 2 //ログイン成功 3function 4ncmb.User,login 5ncmb.User.login 6$(function(){ 7を閉じる})がない

などがでてきます

投稿2016/02/24 03:22

date

総合スコア1820

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

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

Tan3

2016/02/24 03:30

回答ありがとうございます。 すみません。コンソールにエラーが表示されません・・・なにか私のやり方がまちがっているのでしょうか?
date

2016/02/24 03:41 編集

_
date

2016/02/24 08:57

id="pasword" がid="password" になっていないですね
Tan3

2016/02/24 09:35

dateさん ありがとうございます。 ご指摘の箇所を修正しました。 ですが、まだalertが動作しません。 たびたびすみません。
guest

0

HTML

1 2<!DOCTYPE HTML> 3<html> 4<head> 5 <meta charset="utf-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> 7 <meta http-equiv="Content-Security-Policy" content="default-src * data:; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'"> 8 <link rel="stylesheet" href="components/loader.css"> 9 <link rel="stylesheet" href="css/style.css"> 10 <script src="components/loader.js"></script> 11 <script src="js/ncmb-2.0.0.min.js"></script> 12 <script> 13 14 $(function(){ 15 //mBaaSの初期化 16 var application_key = "0c266079f782bc9dcd58139798337ba17ea41f09077ae93f621541c4ccf22000"; 17 var client_key = "c6937216c6a4aecfc9a066e42a746bb58520133c9f0a79e5e1e7949177be0000"; 18 var ncmb = new NCMB(application_key, client_key); 19 //ログイン・新規処理 20 $("form").on("submit", function() { 21 var username = $("#username").val(); 22 var password = $("#password").val(); 23 24 25 // ユーザー名とパスワードでログイン 26 ncmb.User.login("username", "password") 27 .then(function(data) { 28 // ログイン後処理 29 alert("ログイン成功"); 30 }) 31 .catch(function(err) { 32 // エラー処理 33 alert("ログイン失敗"); 34 }); 35 }); // セミコロンなかったよ 36 }); // この行なかったよ 37 38 39 </script> 40 <style> 41 body{ 42 background-color: #BBDEFB; 43 padding-top: 20px; 44 font-family: Verdana, sans-serif; 45 } 46 form{ 47 padding: 30px auto; 48 text-align: center; 49 } 50 input{ 51 border-radius: 5px; 52 padding: 7px; 53 margin-bottom: 10px; 54 width: 200px; 55 font-size: 20px; 56 } 57 </style> 58</head> 59<body> 60 61 <form> 62 <input type="text" id="username" placeholder="User name" /> 63 <input type="password" id="password" placeholder="Password" /> 64 <input type="submit" value="Register/Login" /> 65</form> 66</body> 67</html> 68

投稿2016/02/24 09:40

hato_pato

総合スコア215

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

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

Tan3

2016/02/24 09:50

hato_patoさん とても丁寧にありがとうございます。 alertが表示されるようになりました。 嬉しかったです。 ですが、ログイン失敗と表示されてしまいます。 度々すみません。
date

2016/02/24 10:09

シークレットキーなど修正しましたか?
hato_pato

2016/02/24 10:18

ユーザは作成されていますよね? var ncmb = new NCMB(apikey, clientkey); var user = new ncmb.User(); user.set("userName", "Yamada Tarou") .set("password", "password") .set("phone number", "090-1234-5678"); // 任意フィールドを追加 // 新規登録 user.signUpByAccount() .then(function(){ // 登録後処理 }) .catch(function(err){ // エラー処理 });
Tan3

2016/02/24 10:25

dateさん 回答ありがとうございます。 クライアントキーとアプリケーションキーは本物を使っています。 なんどもありがとうございます。
Tan3

2016/02/24 10:29

hato_patoさん 回答ありがとうございます。 すみません、ユーザ作成の意味がわかっておりません。 ご指摘の var ncmb = new NCMB(apikey, clientkey); は17行目 var user = new ncmb.User(); は21行目 という認識でよろしいでしょうか? なんどもありがとうございます。
hato_pato

2016/02/25 02:02 編集

ログインしたいユーザは、ニフティ側に登録されていますか?という意味です。 ユーザ登録されていないなら、ログイン失敗して当然ですよね。
Tan3

2016/03/03 07:50

hato_patoさん ユーザー登録と、ログインを同時に行いたかったのですが、うまくいっていませんでした。 何度も回答ありがとうございます。
hato_pato

2016/03/03 08:39

すみません、最初のソースをシンプルにした時に見落としました。 あと、ユーザー登録に失敗するケースにも対応させておくと良いと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問