Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.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
Python web服务器未响应CORS请求_Python_Python 3.x_Server_Cors - Fatal编程技术网

Python web服务器未响应CORS请求

Python web服务器未响应CORS请求,python,python-3.x,server,cors,Python,Python 3.x,Server,Cors,我认为CORS标题都设置正确。服务器启动,但尝试使用Postman或my React web app发送POST请求,服务器不响应,也不打印POST参数。如果我取消邮递员发出的POST请求,它将打印参数和请求详细信息 我花了几个小时试图在Python3中找到一个工作示例来构建CORSAPI服务器(CORS在测试web应用程序时似乎是Google Chrome所需要的),但我没有成功 from http.server import HTTPServer, SimpleHTTPRequestHand

我认为
CORS
标题都设置正确。服务器启动,但尝试使用Postman或my React web app发送
POST
请求,服务器不响应,也不打印
POST
参数。如果我取消邮递员发出的
POST
请求,它将打印参数和请求详细信息

我花了几个小时试图在Python3中找到一个工作示例来构建
CORS
API服务器(
CORS
在测试web应用程序时似乎是Google Chrome所需要的),但我没有成功

from http.server import HTTPServer, SimpleHTTPRequestHandler
import json

class CORSRequestHandler (SimpleHTTPRequestHandler):

    def do_OPTIONS(self):
        self.send_response(200, "ok")
        self.send_header('Access-Control-Allow-Origin',
                         self.headers['origin'])
        self.send_header("Access-Control-Allow-Headers",
                         "Origin, X-Requested-With, Content-Type, Accept")
        self.send_header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS')
        self.end_headers()

    def do_POST(self):

        parameters = json.load(self.rfile)
        print(parameters)

        body = bytes(json.dumps({'trial': 'blablalbla'}), 'utf-8')

        self.send_response(200)
        self.send_header("Access-Control-Allow-Origin", "*")
        self.send_header("Access-Control-Allow-Headers",
                         "Origin, X-Requested-With, Content-Type, Accept")
        self.send_header('Content-Type', 'application/json'),
        self.end_headers()

        self.wfile.write(body)


if __name__ == '__main__':
    httpd = HTTPServer(('localhost', 9000), CORSRequestHandler)
    try:
        httpd.serve_forever()
    except KeyboardInterrupt:
        pass

我从Postman和React应用程序以JSON的形式发送请求正文。我遗漏了什么?

似乎是一个相当基本的问题。当你写文章的时候,参数打印出来了吗?您是否尝试过普通(非CORS)httprequesthandler并使其正常工作?尝试获取?仅当我取消邮递员的请求或在Chrome中重新加载web应用程序时,才通过打印(参数)打印参数。非CORS的httprequesthandler工作得很好,直到我因为Google Chrome而需要CORS。当时我用瓶子解决了这个问题,但是一个解决方案可能对其他人有用。。。