Получение массива в JS от PHP через ajax
Здравствуйте! Столкнулся с проблемой.
Есть обращение к PHP файлу через AJAX, для получения массива даных: var U = new Array(); jQuery.ajax({ url: 'assets/template/js/calc/getcoefu.php', type: 'GET', contentType: "application/json; charset=utf-8", dataType: "json", data: 'file='+fileU, success: function(data){ U = jQuery.parseJSON(data); } }); console.log(U); PHP-файл: header('Content-Type: application/json'); $file = $_SERVER['DOCUMENT_ROOT'].'/'.$_GET['file']; $fp = fopen($file, 'r'); $data = array(); $i = 0; while (($row = fgetcsv($fp, false, ';'))) { $row = array_map(function($item) { $item = preg_replace('/.+=([0-9,\.]+)/', '$1', $item); return $item+0; }, $row); array_shift($row); if( $i > 3 ) $data[] = $row; $i++; } fclose($fp); echo json_encode($data); exit; PHP-файл выводит следующий массив: Код:
[[74,48,38,46,44,37,37,31],[85,59,48,57,54,47,46,40], Код:
Uncaught SyntaxError: Unexpected token , in JSON at position 2 Кто-нибудь с этим сталкивалсс, может подсказать что делаю не так? Спасибо! |
vlasenkov,
success: function(data){ U = data; console.log(U); } |
Цитата:
Насчет ошибки, что-то выводится в браузер кроме json, это может быть BOM, с которым сохранен файл сценария, а его визуально не видно. array_shift($row); - а наоборот нельзя, ведь это постоянно перебирать массив? return $item+0; а это зачем? |
Только сейчас обратил внимание: если явно указан тип ожидаемых данных - dataType: "json", то data уже объект, и jQuery.parseJSON(data) не требуется.
|
Цитата:
Код:
Uncaught SyntaxError: Unexpected token , in JSON at position 2 Цитата:
Только пробел видно, вместо табуляции вставляется пробел и вместо неразрывного пробела нулевой ширины просто пустое место... <textarea>{ "usd": 27 }</textarea> <style> @font-face { font-family: "Laimas"; src: url("https://cdn.glitch.com/348d485e-4ba6-4841-a41e-5865874b2d66/laimas-normal.ttf"); unicode-range: U+9, U+20, U+FEFF; } textarea { font: 200% "Laimas", sans-serif; width: 100%; height: 4em; } </style> Оно же нарисовано в шрифте... |
Очередная прострация для "язык почесать".
|
Цитата:
Есть шрифт Laimas, в котором прорисованы три символа:
laimas, это же удобно, когда видна табуляция, пробел, неразрывный пробел нулевой ширины? По крайней мере это можно нарисовать в шрифте, вопрос в том почему браузер не использует их, а только пробел. Может какие-то настройки в шрифте нужно указать? |
Цитата:
Поэтому не "а чем вам не нравится?", а мне оно не нужно. А для того чтобы понять, что есть грязь до/после строки в виде непечатного, для этого достаточно сравнить длины строк на сервере и на клиенте. То есть, это я бы так действовал, а вы предлагайте свои инструменты автору, к чему возражения лично мне? Цитата:
|
Цитата:
Цитата:
Цитата:
В теме обсуждались даты, и теперь вы знаете, почему день недели, возвращаемый date.getDay(), начинается с воскресенья. Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Кстати тема, про которую вы говорите, жила без моего участия до №66 поста, где до моего сообщения, были взаимные оскорбления, сексисткие высказывания, стигма. laimas, вы в той теме написали намного больше, включая высказывания на тему морали. Этот пост как глоток свежего воздуха в мире, где всё начинается в понедельник. Если вернуться к теме... Мой вопрос-то был... Цитата:
|
Цитата:
Делаю без jQuery.parseJSON, тогда возвращается пустой массив. |
Часовой пояс GMT +3, время: 00:03. |