前提・実現したいこと
AJAXでログイン画面を作っています。サーバ側はPHPです。
データのPOSTがうまくいかず、はまっています
うまくデータが送れていないのか、データを受け取れていないのか
両方なのか切り分けができずにいます
発生している問題・エラーメッセージ
syntax error near unexpected token N in JSON at position
※Nはサーバ側で$_POSTをvar_dumpで出力したところで落ちているからだと思います。
エラーメッセージ
syntax error near unexpected token N in JASON at position
該当のソースコード
JQuery
var param = { "userId": "" + $("#userId").val(), "password":"" + $("#password").val() }; $.ajax({ type: "POST", url: "./php/ctrl/loginCheck.php", async: false, dataType: "JSON", contentType: "application/json", data: {LOGIN_DATA: param} }) .done(function(callbackValue, dataType){ console.log( callbackValue.status + ', ' + callbackValue.reason ); console.log(callbackValue); if( callbackValue.status != "success" ) { $("#error").html("ユーザID、またはパスワードが違います。"); return; } window.location = "./?opt=<?php echo $opt ?>"; }) .fail(function(XMLHttpRequest, textStatus, errorThrown){ // デバッグ用 console.log("ajax通信に失敗しました"); console.log("XMLHttpRequest.status : " + XMLHttpRequest.status); console.log("textStatus : " + textStatus); console.log("errorThrown : " + errorThrown.message); })//Ajax通信Error処理
PHP
<?php session_start(); $ret = array(); if (isset($_POST["LOGIN_DATA"])) { $d = $_POST["LOGIN_DATA"]; } else { var_dump($_POST["LOGIN_DATA"]); die("値が入力されていません"); exit; } //↑ここでdieを通ります
試したこと
ContentTypeを足さないと別のErrorが発生します。
Internal Server Error 500
syntax error : unexpected end of JSON input
ここに問題に対して試したことを記載してください。
似たような問題が多数ありますが検索しきれませんでした
補足情報(FW/ツールのバージョンなど)
Jquery 1.12.4
PHP 7.1
Server Lolipop
回答2件
あなたの回答
tips
プレビュー