2012-12-06 2 views
3

브라우저가 JSONP 요청을 Laravel로 보내면 Laravel이 브라우저에 결과를 반환합니다. 브라우저 콘솔에서 다음과 같은 경고 메시지가 표시됩니다.JSONP with Laravel

Resource interpreted as Script but transferred with MIME type text/html: 

JSONP 응답의 부적절한 헤더 때문인 것으로 생각됩니다. 이 경고는 어떻게 고쳐야합니까?

PHP

$callback = Input::get('callback'); 
$result = DB::table('users')->find(123); 

return $callback . '(' . json_encode($result) . ')'; 

Response::JSON($result) 내가 믿는 일반적인 JSON 응답, 페이로드 주변의 콜백 함수 이름 포장으로하지 JSONP 변형을 반환합니다.

답변

4

Response :: json() 호출에서 헤더를 제공 할 수 있습니다.

Response::json($result, 200, array('Content-Type' => 'application/javascript')); 

JSONP의 올바른 MIME 유형은 application/javascript입니다.

22

당신은 Lavavel 4에서이 작업을 수행 할 수 있습니다 (원본 : 화 puedes hacer ESTO 엔 Laravel 4)

Response::json($result)->setCallback(Input::get('callback')); 
+4

영어로 해주세요. –

1
Response::json($result)->setCallback(Input::get('callback')); 

이 더 Raul Duran에 의해 제안 당신이 $ 결과를 조작하지 않는 한 .

다른 옵션은 응답을 사용하는 대신 에코입니다.