2014-01-06 2 views
0

Я понятия не имею, почему я не могу получить jquery для разбора массива JSON из вызова на стороне сервера PHP.

Вот мой JQuery

$.ajax({ 
    type:"POST", 
    url:"/Home/Profile/cb_profile.php", 
    data:{loadProfile: JSON.stringify(itemsToPost)}, 
    success: function(data){ 
    var returnedItem = $.parseJSON(data); 
    }, 
    error: function(e){ 
    console.log("We've had a error"); 
    }, 
}); 

Вот мой PHP

if(isset($_REQUEST['loadProfile'])) 
{ 
    $connection = connectSQL(); 

    $userID = getID(); 
    $query = "SELECT * FROM users where usersID = $userID"; 

    $results = query($connection,$query); 

    $row = $results->fetch_assoc(); 

    $firstName = "Steve"; 

    echo json_encode(array("firstName" => $firstName)); 

    disconnectSQL($connection); 
} 

Я получаю эту ошибку внутри поджигатель.

SyntaxError: JSON.parse: неожиданный символ

возврата window.JSON.parse (данные);

Пожалуйста, помогите ...

+0

Возможно, это столкнулось с сообщением об ошибке PHP, таким образом не предоставляя ожидаемую строку JSON. – MackieeE

+2

Что такое 'data' в вашем обратном вызове? jquery, возможно, уже разобрал его для вас, если он распознал строку, поскольку JSON – jbabey

+0

предупреждает данные и проверяет, что возвращает php ??? –

ответ

0

Просто измените ключ DataType для Ajax вызова JSON и вам не нужно будет делать parseJSON.

+0

Как только я сделайте это, я ошибаюсь. –

0

Возможно опечатка в запросе? UserID - UserID. Вероятно, у вас есть ошибка в php-скрипте. Проверьте firebug или chrome dev tool. См. Ответ, который вы получаете от сервера, что он содержит.

0

Вы можете использовать это:

echo json_encode(array("firstName" => urlencode($firstName))); 
+0

Я все еще получаю сообщение об ошибке, когда он достигает моего вызова ajax. –

+0

Что вы по умолчанию кодируете? –

+0

@Pedro Monteiro –

0

Я нашел реальную проблему. По какой-то причине BOM или знак байтового заказа пробрались в мой ответ и вызвали смерть. $ PseJSON(). Я решил эту проблему, добавив .trim() к моему ответу var returnedItem = $.parseJSON(data.trim());.

Смежные вопросы