JSON.parse: неожиданный символ в строке 1 столбца 1 данных JSON при отправке Javascript - PullRequest
0 голосов
/ 10 мая 2018

Я работаю над простым окном сообщения, использую «remote: true», а затем заменяю div flash_message сообщением об успехе или неудаче. По какой-то причине это продолжает выдавать ошибку «JSON.parse: неожиданный символ в строке 1 столбца 1 данных JSON».

Мой взгляд:

= form_for Message.new, remote: true, format: :js do |f|
  = hidden_field_tag :authenticity_token, form_authenticity_token
  = f.text_field :name, placeholder: 'Naam'
  = f.text_field :email, placeholder: 'E-mail'
  = f.text_area :message, placeholder: 'Jouw bericht'
  = f.submit

#flash-message

Мой контроллер:

def create
  @message = Message.new(params[:message])

  respond_to do |format|
    if @message.valid?
      # MessageMailer.contact(@message).deliver

      format.html
      format.js { flash.now[:success] = "Thank you for your message. I'll get back to you soon!" }
    else
      format.html
      format.js { flash.now[:failure] = "Something went wrong!" }
    end
  end
end

Мой create.js.erb:

$('#flash-message').html("<%= j render 'flash' %>").delay(3000).fadeOut(4000);

На терминале вижу:

Started POST "/messages.js" for 127.0.0.1 at 2018-05-10 16:14:33 +0200
Processing by MessagesController#create as JS
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"/3VXW31YVYF/mfle+JiHHx1jRguLF4TkepPWGqXYhP4tc/qS2IfGWlWpvcW4A4pwwcTGmHZJHnpzajqT+ETLiw==", "message"=>{"name"=>"", "email"=>"", "message"=>""}, "commit"=>"Create Message"}
  Rendering messages/create.js.erb
  Rendered messages/_flash.html.slim (2.3ms)
  Rendered messages/create.js.erb (3.8ms)
Completed 200 OK in 19ms (Views: 11.8ms | ActiveRecord: 0.0ms)

А в браузере я получаю

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

$('#flash-message').html("<div class=\"alert alert-failure\">Something went wrong!<\/div>").delay(3000).fadeOut(4000);

Я, очевидно, делаю что-то очень неправильное, но не понимаю, почему мой код javascript внезапно анализируется как json.

Я погуглил ошибку, но безрезультатно.

Есть предложения, что я могу делать не так?

1 Ответ

0 голосов
/ 10 мая 2018

Как говорится - никогда не учиться старому ... Через 10 минут после публикации этого вопроса и после 3 часов попыток найти причину проблемы я внезапно обнаружил, что не включил jquery_ujs в свое приложение.файл, вызывающий, по-видимому, все вышеперечисленные проблемы.

//= require jquery_ujs

Надеюсь, этот вопрос кому-нибудь поможет в будущем!

...