UncauthtSyntaxError:Unexpected token ILLEGAL jsエラー

3353 ワード

最近amazeuiのフレームワークでwebappを書いて、中間テストのバックグラウンドで文字の内容をアップロードした後、あるモジュールはクリックして次のインタフェースに入ることができて、あるモジュールはできません.モジュールがクリックできない場合は、開発者ツールにUncauthtSyntaxError:Unexpected token ILLEGALのjsエラーが表示されますが、後で文字にスペースがあるため、1つの方法でスペース付きコンテンツを渡すと問題が発生することがわかります.また、この問題には他にも原因があります.以下にまとめます.
1、スペース付きパラメータを渡す
私が犯したエラーは、スペース付きのパラメータを渡したことです.contentはバックグラウンドから取得したパラメータの内容です.
onclick =\"sortlist('"+a.id+"','"+a.logo+"','"+a.content+"')\"

伝達されたcontentパラメータの内容にスペースがある場合、またはjs後に自動的に特殊文字を解析します.例えば、+番号がコネクタ、スペースに解析、&変数コネクタ、サーバ側がデータを受信した場合&以降のデータは表示されません.jsはエラーを報告し、解決方法:
(1)バックグラウンド管理システムからスペース付きjsonデータをアップロードする場合,バックグラウンドプログラムによりスペースをフィルタリングすることができる.
               (2)  1.jsプログラムでは、スペースまたは特殊文字を16進数の文字に置き換えることができます.
                      2.最も簡単なのはescape関数を使って処理します
                            
$.ajax({
    type:"POST",
    contentType:"application/json",
    url:"http://"+url+"/shouyou/pushList.do",
    data:userjson,
    dataType:"json",
    success:function (data) {
         var contentEscape =escape(data.data.content);
       

2、もう一つの原因は、パラメータを渡すときに、パラメータの書き方が間違っていたり、多引用符や少引用符などの書き方が間違っていたりすることです
パラメータは文字列ですが、引用符で囲まれていないため、この例外が発生しました.