0

JavaScript コードをビュー ファイル名 product/js.blade.php に配置し、次のような別のビューに含めます。

{{ HTML::script('product.js') }}

JavaScriptでLaravelの機能を使って何かしたいのでやった、例えば

var $path = '{{ URL::action("CartController@postAjax") }}';

実際にはすべて動作していますが、ブラウザから警告メッセージが表示されます。可能であれば修正方法を教えてください。

リソースはスクリプトとして解釈されますが、MIME タイプ text/html で転送されます

4

4 に答える 4

0

まず、Javascript コードを Blade ビューに配置するのは危険です。Javascript には、誤って Blade 構文でもある文字列が含まれている可能性があり、それが解釈されることは絶対に望ましくありません。

第二に、これはブラウザの警告メッセージが表示される理由でもあります。

Laravel は、Javascript を Blade ビューに配置したため、通常の Web ページと見なし、このヘッダーで送信されます...

Content-Type: text/html

ファイルに名前product.jsを付け、それをビュー フォルダーに配置する代わりに、javascript アセット フォルダーにドロップすると、正しいヘッダーが含まれます。

Content-Type: application/javascript

.. 警告メッセージは消えます。

編集:

Laravel から Javascript に値を渡したい場合は、次の方法を使用します。

これをビューに挿入します。

<script type="text/javascript">
    var myPath = '{{ URL::action("CartController@postAjax") }}';
</script>

次に、外部スクリプトで変数を使用します。

于 2013-09-02T07:42:40.573 に答える
0
public function getWebServices() {   
$content = View::make("_javascript.webService", $data);

    return (new Response($content, 200))->header('Content-Type', "text/javascript");
}

コントローラーのメソッドで上記を返します

_javascript フォルダー内の webService ビューに JavaScript コードを記述します。ajax 経由で get データをロードする代わりに、その特定のデータを使用して js ブレードを作成し、それを base64_encode してから、js コードでデコードして使用します。

于 2015-02-06T08:20:28.823 に答える