Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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 链接到静态Tornado页面中的外部url_Javascript_Python_Websocket_Raspberry Pi_Tornado - Fatal编程技术网

Javascript 链接到静态Tornado页面中的外部url

Javascript 链接到静态Tornado页面中的外部url,javascript,python,websocket,raspberry-pi,tornado,Javascript,Python,Websocket,Raspberry Pi,Tornado,我制作了一个html文件和一个python脚本,通过带有Tornado Web服务器的websocket控制我的raspberry pi GPIO引脚。它工作得很好。为了提供静态html页面,我在python脚本中使用以下代码: application = tornado.web.Application([ (r'/escape/media/(.*)',tornado.web.StaticFileHandler,{"path":'/home/pi/myproject/media'}),

我制作了一个html文件和一个python脚本,通过带有Tornado Web服务器的websocket控制我的raspberry pi GPIO引脚。它工作得很好。为了提供静态html页面,我在python脚本中使用以下代码:

application = tornado.web.Application([
    (r'/escape/media/(.*)',tornado.web.StaticFileHandler,{"path":'/home/pi/myproject/media'}),
    (r'/escape/(.*)',tornado.web.StaticFileHandler,{"path":'/home/pi/myproject'}),
    (r'/mycode',WSHandler)
])
if __name__ == "__main__":
    http_server = tornado.httpserver.HTTPServer(application)
    http_server.listen(8888)
    print 'Websocket Server Start ...'
    tornado.ioloop.IOLoop.instance().start()
在html文件中,我尝试加载一个外部mp3文件来播放:

function talk() {
            text = encodeURI(document.getElementById("textinput").value);
            mp3 = new Audio('http://translate.google.com/translate_tts?tl=en&q=' + text);
            mp3.play();
        }
如果我从我自己的磁盘在我的windows机器上加载网页,这是可行的,但当Tornado从raspberry pi将其作为静态页面进行服务器时,这是行不通的。在javascript控制台中,我得到一条消息:“加载资源失败:服务器响应状态为404(未找到)”

我不明白为什么这是一个问题,因为它是一个绝对链接到外部网站。有人知道解决办法吗


谢谢

问题似乎在于谷歌基于Referer头阻止了该API的使用。当文件在本地磁盘上时,不会发送Referer,并且它可以工作,但是当通过HTTP访问文件时,会发送Referer,Google会返回404。有关包括可能的解决方法在内的更多详细信息,请参阅。

谢谢您的回答。我将研究一下解决办法,看看是否可以这样解决。