2012-10-01 2 views
3

Symfony2에서 JSONP를 반환하려고합니다. 일반 JSON 응답을 반환 할 수 있지만 JSON 응답 클래스가 콜백을 무시하는 것처럼 보입니다. 그럼 내 컨트롤러AJAX 호출을 사용하여 Symfony2 컨트롤러에서 JSONP 반환

$.ajax({ 
     type: 'GET', 
     url: url, 
     async: true, 
     jsonpCallback: 'callback', 
     contentType: "application/json", 
     dataType: 'jsonp',      
     success: function(data) 
     {         
       console.log(data); 
     }, 
     error: function() 
     { 
      console.log('failed'); 
     } 
     }); 

:

$callback = $request->get('callback');  
$response = new JsonResponse($result, 200, array(), $callback); 
return $response; 

나는이에서 얻을 응답은 항상 일반 JSON이다. 콜백 랩핑이 없습니다.

JSON 응답 클래스는 여기에 있습니다 : 워드 프로세서는 말한다

https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpFoundation/JsonResponse.php

답변

13

으로 : 당신은 $headers 매개 변수로 콜백 방법을 설정하는

$response = new JsonResponse($result, 200, array(), $callback); 

.

$response = new JsonResponse($result, 200, array()); 
$response->setCallback($callback); 
return $response; 
+0

아! 완벽한 감사. – BobFlemming

1

JsonResponse의 생성자 콜백 인수를하지 않습니다

그래서 당신은 할 필요가있다. 메소드 호출을 통해 설정해야합니다.

$response = new JsonResponse($result); 
$response->setCallback($callback); 

return $response; 
관련 문제