【发布时间】:2018-03-12 03:09:42
【问题描述】:
我正在尝试从 rails 控制器获取 json 响应并将其插入到 js 函数中。我不断收到错误:
我的控制器
def live #users present or attendees view
@presentation = Presentation.find(params[:secret])
@countdown = @presentation.start - DateTime.now()
#IF A PERSON IS A PRESENTER
if @presentation.presenter.id == current_user.id
@presenter = true
require 'json'
require 'net/http'
require 'uri'
uri = URI.parse('https://api.screenleap.com/v2/screen-shares')
req = Net::HTTP::Post.new(uri.path, initheader = {'accountid' => 'APPID', 'authtoken' => 'MYTOKEN'}) #These are correct in actual code
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
res = http.request(req)
@screenShareData = JSON.parse(res.body)
#IF A PERSON IS AN ATTENDEE
else
@presenter = false
@screenShareData = false
end
end
在我看来
<script>
<script type="text/javascript" src="https://api.screenleap.com/js/screenleap.js"></script>
window.onload = function() {
var callbacks = {
nativeDownloadStarting: [onNativeDownloadStartCallback],
screenShareStarting: [onScreenShareStarting],
appConnectionFailed: [onAppConnectionFailed],
screenShareStartError: [onScreenShareStartError]
};
var screenShareData = <%= @screenShareData %>;
var presenterAppType = 'NATIVE';
screenleap.startSharing(presenterAppType, screenShareData, callbacks);
};
</script>
在我看来我也尝试过:
var screenShareData = <%= @screenShareData.to_s.html_safe %>;
在任何一种情况下,我似乎都会遇到两个 javascript 错误之一。 “Uncaught SyntaxError: Unexpected token &”或“Uncaught SyntaxError: Unexpected token =>”
我的感觉是它以某种方式没有按照函数期望的方式翻译 JSON。知道如何解决这个问题吗?
【问题讨论】:
-
不是
@screenShareData = JSON.parse(res.body)解析JSON数据并存储为Hash吗?要么根本不解析,要么使用.to_json方法将其转换为 JSON。 -
我的感觉是你的控制器没有收到
json响应,尝试console.log(screenSharedData)看看你得到了什么。 -
我也试过不解析它。无济于事。我也得到了一个 json 响应,因为我可以将它和视图中的所有数据显示为字符串。我会看看你链接的问题,Taki,我认为这与下面的回复类似。
标签: javascript ruby-on-rails json