2017-03-24 5 views
0

リクエストに応じて、ドキュメントに埋め込まれたフロントエンドにいくつかのHTMLとjQueryを渡すNode(Express)ベースのAPIを使用しています。私はフロントエンドに送ることができるように、バックエンド上の関数を文字列化するきちんとした方法を探しています。私はフロントエンドに置かなければならないコードの量を最小限にしようとしています。これは機能していますが、少し醜いと感じ、デバッグするのは難しいです。フロントエンドにはノードからHTTPレスポンスを経由してJquery関数を渡す

responseData.scripts = "<script>"; 
var search_request = 
    "$('#search_form').submit(function(event) { "+ 
      "event.preventDefault();"+ 
     "data.stage = 'search';"+ 
     "data.query.first_name='Bob';"+ 

     "$.ajax({"+ 
       "type: 'GET',"+ 
       "url: 'http://159.203.131.150:3000',"+ 
      "data:data,"+ 
      "crossDomain: true,"+ 
      "success: function(response) {"+ 
       "response = JSON.parse(response);"+ 
       "console.log(response);"+ 
      "}"+    
     "})" + 
    "})" + 
"</script>"; 
responseData.scripts+=search_request; 

、私は

$.ajax({ 
type: "GET", 
url: "http://159.203.131.150:3000", 
data: data, 
crossDomain: true, 

success: function(response) { 
    response = JSON.parse(response); 
    $(response.html).prependTo("#content"); 
    $(response.scripts).appendTo("body"); 
}, 


    }); 

答えて

0

この

$.ajax({ 
type: "GET", 
url: "http://159.203.131.150:3000", 
data: data, 
crossDomain: true, 

success: function(response) { 
    response = JSON.parse(response); 
    $(response.html).prependTo("#content"); 
    $(function() { 
     $('<script>') 
     .attr('type', 'text/javascript') 
     .text(response.scripts) 
     .appendTo('body'); 
    }) 
} 
}); 

好きですし、サーバー側の応答

+0

ありがとうKuldeep。これは私が求めていたものではありません。私はクライアント側で何の問題もない、実際には私が書いた方法で働いている。私はクライアント側に送信するためにjQueryを文字列化するためにサーバー側で使用しているメソッドの代わりにneaterを探しています –

+0

クライアント側で何かを推奨する理由と対処する理由は何ですか私が持っています? –

0

からスクリプトタグを削除する必要があり、私はExpressのを見つけましたこれを行う関数です(私はExpressには新しく、かなり基本的な関数です)。私は、パブリックフォルダにjavascriptファイルを格納し、私のアプリからそれを提供終了しました。

https://expressjs.com/en/starter/static-files.html

関連する問題