Я получаю «SyntaxError: Неожиданный конец ввода JSON» от моего ajax почтового вызова для отправки данных на мой серверный сервер для обработки. Кажется, что все на самом деле работает - ajax отправляет данные сервлету, а сервлет получает данные правильно. Я не могу понять, почему синтаксический анализатор выдает ошибку.
Я исследовал и попробовал много других решений на StackOverFlow без успеха.
Любая помощь или указатели приветствуются!
Приветствия ... Steve
Мой код браузера:
function createDataset(){
var jsonObj = new Object();
jsonObj.display_drivername = document.getElementById('driver_namedb').value;
jsonObj.drive_seq1 = document.getElementById('drive_seq1').value;
return jsonObj;
}
function submit_claim() {
//Main code call
var JsonDataset = createDataset();
console.log(JsonDataset);
request = $.ajax({
url: '../wp-content/themes/u-design-child/deleteme.php',
type: 'POST',
// Fix - delete this line contentType:'application/json; charset=utf-8',
// Fix - delete this line dataType: 'JSON',
data: JsonDataset
});
}
И серверный тестовый код в deleteme. php:
//elog writes to error.log file
if(!empty($_POST['display_drivername'])) {elog ('Drivername found'.$_POST['display_drivername']);};
if(empty($_POST['display_drivername'])) {elog ('driver name empty');};
if(!empty($_POST['drive_seq1'])) {elog ('DSN found'.$_POST['drive_seq1']);};
if(empty($_POST['drive_seq1'])) {elog ('DSN empty');};
В результате я получаю:
Вывод журнала консоли из Submit_Claim (JsonDataset) (развернут в консоли Chrome):
{display_drivername: "Steve Parry [SPAR]", drive_seq1: "2438"}
display_drivername: "Steve Parry [SPAR]"
drive_seq1: "2438"
__proto__: Object
Данные формы из DeleteMe. php Сетевые заголовки:
display_drivername: Steve Parry [SPAR]
drive_seq1: 2438
Журнал ошибок (из Deleteme. php):
[06-Jan-2020 18:49:44 UTC] string(34) "Drivername foundSteve Parry [SPAR]"
[06-Jan-2020 18:49:44 UTC] string(13) "DSN found2438"
РЕДАКТИРОВАТЬ 1 : увидел комментарий от кого-то, кто сейчас исчез, указывая, что contenttype должен быть contentType. Спасибо, кто бы это ни был, однако это не изменило проблему.
РЕДАКТИРОВАТЬ 2 Измените код, чтобы отразить решение