1

.csv ファイルをサーバーに送信し、その中の単語をページのテキストエリアに追加する必要があるフォームがあります。Remotipart を使用して AJAX を使用して .csv をアップロードしていますが、サーバーの応答で実行する JavaScript を取得できません。私のコードの関連部分は次のとおりです。

フォーム:

=form_tag(upload_canvas_words_admin_page_widget_widget_instance_path(widget.page, widget),:method=>'post',:remote=>true,:multipart=>true,:class=>"upload_words_csv") do
        = label_tag "Upload File"
        = file_field_tag "file"
        = submit_tag "Upload"

コントローラー:

def upload_canvas_words
    @csv_text = params[:file].read
end

.js.haml ファイル:

= remotipart_response do
    - if remotipart_submitted?
        alert('#{@csv_text}');
        alert('!');
    - else 
        alert('WHYYYYY?');

応答を見ると、javascript が一連の html にラップされていることがわかります。これは、iFrame トランスポートと関係があると思われます。しかし、JavaScript が実際に実行されることはありません。

4

2 に答える 2

0

この問題を参照してください。そして、ここで与えられた解決策に従うようにしてください。

https://github.com/JangoSteve/remotipart/issues/89

"そのため、テキストエリア内にhtml エンティティ ( など) を含む応答がブラウザに到着します。評価用の js コードが抽出されると、html エンティティはそれぞれの文字 (「 to 」など) に置き換えられます。

これがテキストエリアの特徴です。だから実行されない

于 2013-09-19T05:48:30.680 に答える