Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails ajax错误-SyntaxError:JSON中位于位置0的意外标记C_Javascript_Jquery_Ruby On Rails_Ajax - Fatal编程技术网

Javascript Rails ajax错误-SyntaxError:JSON中位于位置0的意外标记C

Javascript Rails ajax错误-SyntaxError:JSON中位于位置0的意外标记C,javascript,jquery,ruby-on-rails,ajax,Javascript,Jquery,Ruby On Rails,Ajax,在我的视图文件中,我有以下jQueryAjax调用 <% if flash[:notice] %> <div class="notice"><%= flash[:notice] %></div> <% end %> . . . function updateFunction() { var input = JSON.stringify({data: hot.getData()}); $.ajax({

在我的视图文件中,我有以下jQueryAjax调用

<% 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);
}
数据正在保存到db,但我在屏幕上看不到通知消息,而是收到了警告消息(错误回调jQuery AJAX)

SyntaxError:JSON中位于位置0的意外标记C


我做错了什么?非常感谢的任何帮助

数据正确发送到控制器,因为数据保存到数据库;错误在于响应。您正在成功地创建一个
呈现“new”
,它将HTML作为对AJAX调用的响应发送回来。可能是这样的:

car = Car.new(name: params[:data][:name])
unless car.save
   render json: { errors: error }
end
...
如果您需要html和json响应(无论出于何种原因),您可以通过
respond\u to

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

数据正确发送至控制器,因为数据保存至数据库;错误在于响应。您正在成功地创建一个
呈现“new”
,它将HTML作为对AJAX调用的响应发送回来。可能是这样的:

car = Car.new(name: params[:data][:name])
unless car.save
   render json: { errors: error }
end
...
如果您需要html和json响应(无论出于何种原因),您可以通过
respond\u to

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

您是否再次在
创建数据成功()
中将响应转换为JSON?不,我没有,
创建数据成功()
从未执行您返回的数据不是有效的JSON。在控制台的network选项卡中检查请求的responseText,查看返回的确切内容更改this
var input=JSON.stringify({data:hot.getData()})
to=>
var input=JSON.parse({data:hot.getData()})
您是否再次在
创建数据成功()
中将响应转换为JSON?不,我不是,
创建数据成功()
从未执行您返回的数据不是有效的JSON。在控制台的network选项卡中检查请求的responseText,查看返回的确切内容更改this
var input=JSON.stringify({data:hot.getData()})
to=>
var input=JSON.parse({data:hot.getData()})感谢您的帮助,在使用
respond_to do | format | format.html{render:new,注意:'Created'}format.json{render json:{…}}end
后,不再显示错误警报。但我的即时通知仍然没有出现。。有什么想法吗?因为您使用的是AJAX调用,我认为除非页面重定向,否则您不能使用flash通知。您可以返回通知并通过javascript显示它。感谢您的帮助,在使用
respond\u to do | format | format.html{render:new,注意:'Created'}format.json{render json:{…}}end
后,不再显示错误警报。但我的即时通知仍然没有出现。。有什么想法吗?因为您使用的是AJAX调用,我认为除非页面重定向,否则您不能使用flash通知。您只需返回通知并通过javascript显示即可。