如何在另一个Python服务器上使用参数启动Python服务器

2024-09-29 06:22:56 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我的问题是,我有一个服务器,当用户向其URL地址发送字符串时,它会将JSONobject返回给用户。问题是此服务器需要以下参数: 主机名、端口(启动时) 从用户的pc,以服务与JSONobjects的用户。你知道吗

因此,我首先必须手动启动一个服务器(我们可以称之为getserver1),服务器的代码是(不关心导入的内容,它只是在python2和python3上启用它):

#!/usr/bin/env python
try:
    # Python 3
    from http.server import HTTPServer, SimpleHTTPRequestHandler, test as test_orig
    import sys
    def test (*args):
        test_orig(*args, port=int(sys.argv[1]) if len(sys.argv) > 1 else 8000)
except ImportError: # Python 2
    from BaseHTTPServer import HTTPServer, test
    from SimpleHTTPServer import SimpleHTTPRequestHandler

class CORSRequestHandler (SimpleHTTPRequestHandler):
    def end_headers (self):
        self.send_header('Access-Control-Allow-Origin', '*')
        SimpleHTTPRequestHandler.end_headers(self)

if __name__ == '__main__':
    test(CORSRequestHandler, HTTPServer)

在这台服务器上,我放置了一个html文件,其代码如下:

<html>
    <head>
        <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    </head>

    <body>
        <script>        
            $.ajax({
               url: "http://user-pc:8000/getserver2.py",
               success: function(response) {
                    console.log(response);
               }
            });

        </script>       
    </body>
</html>

我得到的错误是:No“Access Control Allow Origin” 当html文件运行时。getserver2.py的代码与上面的getserver1的代码相同,getserver1应该允许“Access Control allow Origin”。你知道吗

那我怎么才能让它工作呢。我不想在炖肉中加入任何像php之类的新元素。你知道吗

另外,当这个方法起作用时,下一个问题是用2个参数启动getserver2(因此是的,getserver2与getserver1有点不同,但只是在它接受这两个参数的意义上)。但是我现在做的测试在两个服务器中都使用相同的代码。你知道吗


Tags: 代码用户fromtestimportself服务器参数