3

ブラウザは JSONP リクエストを Laravel に送信し、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)ペイロードをラップするコールバック関数名を持つ JSONP バリアントではなく、私が信じている通常の JSON 応答を返します。

4

5 に答える 5

25

Lavavel 4 でこれを行うことができます: (オリジナル: Tu puedes hacer esto en Laravel 4)

Response::json($result)->setCallback(Input::get('callback'));
于 2013-07-02T15:27:15.397 に答える
4

Response :: json()呼び出しでヘッダーを提供できます。

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

JSONPの正しいMIMEタイプは、application/javascriptです。

于 2012-12-06T16:06:58.697 に答える
4
Response::json($result)->setCallback(Input::get('callback'));

$result を操作する必要がないため、 Raul Duranが示唆するように優れています。

もう 1 つのオプションは、Response を使用する代わりに echo です。

于 2013-10-03T15:51:10.380 に答える