gpt4 book ai didi

javascript - 在 Rails 中创建 JSON 对象,然后使用 jQuery/Ajax 从操作中获取 JSON 的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-03 12:14:52 25 4
gpt4 key购买 nike

我正在尝试编写一个应用程序,该应用程序将使用 AJAX 请求从 Rails 操作中获取一些 JSON。看起来好像工作得很好,但是在调试时我发现当我输出我需要的JSON值时,它说它是未定义的。

这是我目前拥有的:

rails :

def complete
@case = Case.find(params[:case_id])
respond_to do |format|
format.html
format.json { render json: { :percentage => @case.complete } } ## Should produce something like {"percentage" => 0} and when I go to this url in my rails app I see that it does.
end

Javascript:

function updatePercentage(id_att, db_id, type) {
console.clear();
console.log("updatePercentage was called.");
$(".loading").progressbar({ value: false });
$.ajax({
type: "GET",
dataType: "json",
url: "/cases/" + db_id + "/" + type + "_complete.json", // e.g. /cases/42/type_complete.json
success: function(result) {
console.log("\n\nPercentage from AJAX is " + JSON.stringify(result.percentage));
}
});
}

当我访问 localhost:3000/cases/XXXX/type_complete.json 时,我看到 {"percentage":100} 显然,这已经有所进展。但在 js 控制台中我只看到“AJAX 的百分比未定义”。

当我说 console.log("我要返回的 JSON 对象是 "+ JSON.stringify(this));输出为:

JSON:(在控制台中)

  {
"url": "/cases/980193955/type_complete.json",
"type": "GET",
"isLocal": false,
"global": true,
"processData": true,
"async": true,
"contentType": "application/x-www-form-urlencoded; charset=UTF-8",
"accepts": {
"*": "*/*",
"text": "text/plain",
"html": "text/html",
"xml": "application/xml, text/xml",
"json": "application/json, text/javascript",
"script": "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
},
"contents": {
"xml": {},
"html": {},
"json": {},
"script": {}
},
"responseFields": {
"xml": "responseXML",
"text": "responseText",
"json": "responseJSON"
},
"converters": {
"text html": true
},
"flatOptions": {
"url": true,
"context": true
},
"jsonp": "callback",
"dataType": "json",
"dataTypes": [
"text",
"json"
],
"crossDomain": false,
"hasContent": false
}

为什么会发生这种情况?我该如何解决它?据我所知,JSON 数据应该在那里。但 Javascript 表现得好像不是。

最佳答案

你已经非常接近了!您只需要像这样更改成功回调:

success: function( data ) {
console.log("\n\nPercentage from AJAX is " + data.percentage);
}

成功回调将json数据作为参数传递=)

您还可以使用 jQuery getJSON 简写方法:http://api.jquery.com/jQuery.getJSON/

关于javascript - 在 Rails 中创建 JSON 对象,然后使用 jQuery/Ajax 从操作中获取 JSON 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24767498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com