簡體   English   中英

Rails Ajax錯誤-SyntaxError:JSON中位置0處的意外令牌C

[英]Rails ajax error - SyntaxError: Unexpected token C in JSON at position 0

在我的視圖文件中,我有以下jQuery AJAX調用

<% if flash[:notice] %>
  <div class="notice"><%= flash[:notice] %></div>
<% end %>
.
.
.
function updateFunction() {
    var input = JSON.stringify({data: hot.getData()});

    $.ajax({
        type: 'POST',
        url: "/cars/create",
        data: input,
        contentType: "application/json; charset=utf-8",
        dataType: 'json',
        success: create_data_succ,
        error: create_data_error
    });
}

function create_data_error(XMLHttpRequest, textStatus, errorThrown) {
    alert(errorThrown);
}

cars_controller.rb我有

  def create
    Car.create(name: params[:data][:name])
    flash.now[:notice] = 'New Car!'
    render "new"
  end

數據正在保存到db,但我在屏幕上看不到通知消息,而是收到警報消息(錯誤回調jQuery AJAX)

SyntaxError:JSON中位置0處的意外令牌C

我究竟做錯了什么? 任何幫助,不勝感激

由於數據已保存到數據庫,因此數據已正確發送到控制器; 錯誤在於響應。 您正在成功創建一個render 'new' ,該render 'new'將HTML發送回作為對AJAX調用的響應。 也許像:

car = Car.new(name: params[:data][:name])
unless car.save
   render json: { errors: error }
end
...

如果您需要HTML和JSON響應(無論何種原因),您可以通過做到這一點respond_to

respond_to do |format|
   format.html  { render :new } 
   format.json  { render json: { ... } }
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM