【问题标题】:Calling Python function with Javascript in MAMP在 MAMP 中使用 Javascript 调用 Python 函数
【发布时间】:2015-10-30 01:59:55
【问题描述】:

我要做的是获取一个 Python 文件(现在我有一个简单的测试文件,可以输出一些通用文本)并在单击按钮时让 Javascript 运行它。我希望通过 Javascript 将 Python 脚本的输出记录到控制台。

我已将 httpd.conf 文件设置为 ExecCGI 并将 Python 文件作为 .cgi 文件运行(请参阅http://www.editrocket.com/articles/python_apache_windows.html)。我还为每个人更改了 MAMP 文件夹及其所有内容的读/写权限,以防万一。但是,当我尝试对我的文件进行 Ajax 调用时,我收到 500 内部服务器错误。当我转到 localhost:8888/cgi-bin 时,我收到一个禁止访问错误。作为参考,我的 Javascript 位于 MAMP/htdocs/WebScraper/,而我的 Python 文件位于 MAMP/cgi-bin/

这是我的 Python 文件代码:

print("Content-type: text/html")
print()
print("<p>Hello World</p>")

这是我的 Javascript 文件代码:

$(document).ready(function () {
    $("#submit").click(function() {
        $.ajax({
            url: "/cgi-bin/cgi_test.py",
            success: function(response) {
                console.log(response)
            }
        });
    });
});

我知道它正在访问文件,因为我收到的是 500 错误而不是 404,但我终其一生都无法弄清楚如何让它工作。有人有什么想法吗?

【问题讨论】:

  • 你必须调用python解释器。如果您使用的是 unix/mac,请键入 which python,然后使用 #! 将路径放在文件顶部,通常是 /usr/bin/python。还要确保文件具有可执行权限。
  • 另外,你的日志说什么?
  • 好吧,我把解释器路径放在顶部,还运行了chmod -R 777 /Applications/MAMP/,只是为了确保所有内容都被覆盖,但仍然没有运气。这是我的日志,[Thu Aug 06 12:55:31 2015] [error] [client 127.0.0.1] malformed header from script. Bad header=(): cgi_test.py, referer: http://localhost:8888/Web%20Scraper/ 和我的 Python 文件:#!/usr/bin/python print("Content-type: text/html") print() print("&lt;html&gt;") print("&lt;body&gt;") print("&lt;p&gt;Hello World&lt;/p&gt;") print("&lt;/body&gt;") print("&lt;/html&gt;")
  • 对格式也很抱歉,我找不到任何方法在评论中制作代码块
  • 其实刚刚想通了,不过还是感谢您的帮助,因为我也需要做这些事情!

标签: javascript jquery python apache permissions


【解决方案1】:

好吧,我想通了,我需要在print("Content-type: text/html") 中添加一个\n 以使其成为print("Content-type: text/html\n")。这是为了将标题与其余内容分开,否则程序不知道哪个是哪个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 2012-07-03
    • 1970-01-01
    • 2018-07-14
    • 1970-01-01
    • 2018-12-08
    相关资源
    最近更新 更多