Мой Ajax вызов:Ошибка разбора JSON возвращается через JsonResponse Symfony компонента
$.ajax({
url : path,
type: 'POST',
dataType : 'json',
data: data,
success: function(memberExtra) {
console.log (memberExtra);
}
});
Мой ответ:
HTTP/1.0 201 Created
Cache-Control: no-cache
Content-Type: application/json
Date: Tue, 10 Feb 2015 23:49:09 GMT
{"memberExtras":{"label":"seller","dropdown":"abc"}}
Мой PHP:
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
/**
* Update the pulldown menus.
*
* @Route("/classification", name="classification")
* @Template()
*/
public function classificationAction(Request $request)
{
$memberType = $request->request->get('classification');
$label = $memberType["user"]["memberType"];
$dropdown = "abc";
$response = new Response(json_encode(array('memberExtras' => array(
'label' => $label,
'dropdown' => $dropdown,
))), Response::HTTP_CREATED);
$response->headers->set('Content-Type', 'application/json');
return new Response($response);
}
console.log Безразлично» t выводит что угодно. Даже если регулярное текстовое выражение, например («тест»).
Если удалить DATATYPE: '' JSon декларации и попытки вручную анализировать данные с помощью $ .parseJSON (memberExtra), я получаю эту ошибку:
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
Не удивляйтесь. В принципе, кажется, что парсер попадает в заголовок, возвращенный классом Symfony. Как я могу избежать этого заголовка и просто попасть в JSON?
Спасибо!
быстрого примечания, не смотрит, как на самом деле вы используете 'JsonResponse' ... – castis
попытаться просто' возвращение $ ответа 'вместо' вернуть новый ответ ($ ответ); ' BTW Я предлагаю вам просто использовать' return new JsonResponse ($ myarray) 'и удалить аннотацию' @ Template' из вашего метода. Надеюсь эта помощь – Matteo
@Matteo - Это было! Просто просматривая код снова и снова, я не мог видеть такую глупую ошибку. Спасибо, что одалживал тебе глаза. Я также буду учитывать ваши другие предложения. Очень ценим! –