使用Python与JavaScript通信?
有没有办法将数据包从活动Python脚本发送到当前运行JavaScript的网页 我正在寻找的具体用法是,让网页能够使用JavaScript告诉Python脚本有关网页当前状态的信息,然后让Python脚本解释该数据,然后将数据发送回网页,然后JavaScript使用该数据决定执行哪个函数 这是一个视频游戏机器人(合法),所以它需要实时发生。我相当精通Python和web请求,但我刚刚开始学习JavaScript,所以希望解决方案在JavaScript方面不会太复杂使用Python与JavaScript通信?,javascript,python,Javascript,Python,有没有办法将数据包从活动Python脚本发送到当前运行JavaScript的网页 我正在寻找的具体用法是,让网页能够使用JavaScript告诉Python脚本有关网页当前状态的信息,然后让Python脚本解释该数据,然后将数据发送回网页,然后JavaScript使用该数据决定执行哪个函数 这是一个视频游戏机器人(合法),所以它需要实时发生。我相当精通Python和web请求,但我刚刚开始学习JavaScript,所以希望解决方案在JavaScript方面不会太复杂 编辑:我想实现这一点的一种方
编辑:我想实现这一点的一种方法是让Javascript写入一个Python脚本也可以读写的文件,但是快速的google搜索表明Javascript在文件I/O方面非常有限。有什么方法可以实现这一点吗?出于安全原因,浏览器中的javascript通常仅限于与加载它的站点通信
考虑到这一点,这是一个AJAX调用,一个非常标准的操作。您可以使用XMLHttpRequestAPI发出HTTP请求,Jquery使用$.AJAX和$.get对其进行抽象。您还可以使用较低级别的Websockets网络API:
请注意,XMLHttpRequest API将只允许向同一服务器发送请求,或者只允许返回适当的访问控制allow Origin头的请求。听起来Javascript只发送信息,不接收任何信息。那样的话,你很幸运。我猜您也在同一台机器上运行Javascript和Python 在运行浏览器的计算机上运行Python Web服务器。下面是一个简单的例子: 一旦访问
http://127.0.0.1:8080/
在浏览器中显示消息Hello World
,您可以开始向网站添加更多地址,例如http://127.0.0.1:8080/report_data
,http://127.0.0.1:8080/report_event
等
然后,Javascript可以使用
jQuery.AJAX
或XMLHTTPRequest
向地址http://127.0.0.1:8080/report_data
,并将信息作为GET
参数传递。相关(几乎重复)您需要一个websocket来完成此任务。AJAX调用?你能详细说明一下吗?对不起,这不准确。我需要Python能够向JavaScript发送信息,以便JavaScript根据Python处理的信息执行函数。然后,您可以使用json.dumps
在Python中对数据进行编码,并使用web.header
将Access Control Allow Origin
头添加到响应中,然后在浏览器中,使用JSON.parse
读取响应。