运行 a link 通过 localhost 在实时页面上
running a link through localhost on a live page
我有一个外部程序 运行 一个本地 API 设置为在命中端点时播放 wav 文件。
在我的开发环境中,它工作正常,但是当我推送到 live 环境时,它不再工作了。
我是不是漏了什么?
谢谢!
JqueryController
def playfile
require 'json'
HTTParty.get("http://192.168.1.161:5000/play/98")
response = HTTParty.get("http://192.168.1.161:5000/play/#{params[:id]}")
parsed = JSON.parse(response)
@message = params[:message]
Hint.first.update_attributes(message:@message)
if parsed['success'] == true
@success = "Success"
else
@success = "Failed"
end
end
景色
=form_tag("/jquery/playfile", method: 'post', remote:true) do
= label_tag 'hints on the tv!'
= hidden_field_tag :id , 39
=render 'layouts/play'
当我到达终点时 .. googles inspector 显示一个 'pending' 请求,该请求最终终止,并且 returns 一个应用程序错误响应(来自 heroku)
我猜这与不允许从实时站点访问本地主机地址有关。.有办法解决这个问题吗?
您无法从 Internet (heroku) 访问您的 LAN。
如果您在 http://192.168.1.161:5000/play/98
上进行 GET,heroku 将在其自己的网络中搜索..
解决方案 1:
做一个link (<a href="http://192.168.1.161:5000/play/98"></a>
)。
如果您随后从您的 LAN 中点击 link,这将起作用。 (如果您想重定向回生产站点,可以使用 redirect_back
)。
解决方案 2:
从您的 http://192.168.1.161:5000/play/98
设备建立隧道。
例如,您可以使用 ngrok 来执行此操作。
然后你就可以从 heroku 使用 HTTP Party 发出 GET 请求。
HTTParty.get("http://<ngrok-hash>.ngrok.com/play/98")
注意:对于这两种解决方案,您需要在 http://192.168.1.161:5000/play/98 上有一个 运行 服务器
我有一个外部程序 运行 一个本地 API 设置为在命中端点时播放 wav 文件。
在我的开发环境中,它工作正常,但是当我推送到 live 环境时,它不再工作了。
我是不是漏了什么?
谢谢!
JqueryController
def playfile
require 'json'
HTTParty.get("http://192.168.1.161:5000/play/98")
response = HTTParty.get("http://192.168.1.161:5000/play/#{params[:id]}")
parsed = JSON.parse(response)
@message = params[:message]
Hint.first.update_attributes(message:@message)
if parsed['success'] == true
@success = "Success"
else
@success = "Failed"
end
end
景色
=form_tag("/jquery/playfile", method: 'post', remote:true) do
= label_tag 'hints on the tv!'
= hidden_field_tag :id , 39
=render 'layouts/play'
当我到达终点时 .. googles inspector 显示一个 'pending' 请求,该请求最终终止,并且 returns 一个应用程序错误响应(来自 heroku)
我猜这与不允许从实时站点访问本地主机地址有关。.有办法解决这个问题吗?
您无法从 Internet (heroku) 访问您的 LAN。
如果您在 http://192.168.1.161:5000/play/98
上进行 GET,heroku 将在其自己的网络中搜索..
解决方案 1:
做一个link (<a href="http://192.168.1.161:5000/play/98"></a>
)。
如果您随后从您的 LAN 中点击 link,这将起作用。 (如果您想重定向回生产站点,可以使用 redirect_back
)。
解决方案 2:
从您的 http://192.168.1.161:5000/play/98
设备建立隧道。
例如,您可以使用 ngrok 来执行此操作。
然后你就可以从 heroku 使用 HTTP Party 发出 GET 请求。
HTTParty.get("http://<ngrok-hash>.ngrok.com/play/98")
注意:对于这两种解决方案,您需要在 http://192.168.1.161:5000/play/98 上有一个 运行 服务器