【发布时间】:2015-07-27 18:41:28
【问题描述】:
我也是 Web 开发和 Rails 的新手。我在 php 中创建了一个供内部使用的 web 应用程序,现在正在将其转换为 rails。试图找出 render 做了什么是困难的。例如,我发现这样的定义:
render(options = nil, extra_options = {}, &block) protected
Renders the content that will be returned to the browser as the response body.
似乎没有人告诉作者你在其定义中没有使用一个词。
我试图理解渲染,因为根据How to pass json response back to client,这是比我尝试过的方法更好的完成任务的方法。但是没有其他的部分,我不知道如何实现它。
可能是由于我缺乏网络经验,所以如果有人有任何指向定义的链接,这可能会有所帮助,请发布它们。
我收到此错误:
GetData 中的错误:JSON.parse:JSON 数据第 2 行第 3 列的预期属性名称或“}”
当我在警告框中打印字符串时,它显示为一个长字符串,所以我不知道“第 2 行”在哪里。如果我将限制设置为 1,我会得到同样的错误,这确实使“第 2 行”很难找到。
这是我返回的数据示例:
[{"DocumentNbr":"SS9230","DocumentRevision":""},{"DocumentNbr":"SS8640","DocumentRevision":"17"},{"DocumentNbr":"SS8618","DocumentRevision":"4"},{"DocumentNbr":"SS8630","DocumentRevision":"20"},
我不知道 " 是否应该拼写为 " 或者至少它在警报框中的显示方式。我不知道这是正常的还是导致 JSON.parse 的错误失败。除了alert还有其他方法可以检查数据吗?
我有一个 javascript 函数可以在视图中调用“GetData”:
var wholeNumberData;
wholeNumberData = GetData('wholeNumber', wholeNumber);
看起来像这样(精简版):
function GetData(getType, param) {
var data;
var params;
params = 'wholeNumber=' + param;
data = SendRequest('wholenumber/index', params);
return data;
}
function SendRequest(source, params) {
var http = new XMLHttpRequest();
http.open("GET", source + '?' + params, false);
http.setRequestHeader("Content-type","application/json");
http.onload = function() {
//alert('in function');
}
http.send(params);
alert(http.responseText);//Works
return JSON.parse(http.responseText);//FAILS
}
路由 Wholenumber/index 指向一个 index.html.erb 连接这个:
<% @list = Wholenumber.where("DocumentNbr LIKE ?", params[:wholeNumber] + "%").limit(10) %>
<%= @list.to_json(:only => [:DocumentNbr, :DocumentRevision]) %>
【问题讨论】:
标签: javascript ruby-on-rails ruby json