Estoy tratando de hacer un sitio, obtiene datos de una aplicación web de matraz.
Alguien puede decir una manera de arreglar esto....
Nota -
https://flask-webapp.co y https://my-site.co son ejemplos, no URL reales...
importar flask como server
Pero cuando publico los datos en el matraz, me da este error:
[2022-02-27 09:05:35,348] ERROR in app: Exception on /getData [POST] Traceback (most recent call last): File "/opt/virtualenvs/python3/lib/python3.8/site-packages/flask/app.py", line 2073, in wsgi_app response = self.full_dispatch_request() File "/opt/virtualenvs/python3/lib/python3.8/site-packages/flask/app.py", line 1518, in full_dispatch_request rv = self.handle_user_exception(e) File "/opt/virtualenvs/python3/lib/python3.8/site-packages/flask/app.py", line 1516, in full_dispatch_request rv = self.dispatch_request() File "/opt/virtualenvs/python3/lib/python3.8/site-packages/flask/app.py", line 1502, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args) File "/home/runner/Discord-Smart-Bot/main.py", line 463, in getuser user = json.loads(server.request.get_json()) File "/usr/lib/python3.8/json/__init__.py", line 341, in loads raise TypeError(f'the JSON object must be str, bytes or bytearray, ' TypeError: the JSON object must be str, bytes or bytearray, not NoneType 172.18.0.1 - - [27/Feb/2022 09:05:35] "POST /getData HTTP/1.1" 500 - [2022-02-27 09:05:35,354] INFO in _internal: 172.18.0.1 - - [27/Feb/2022 09:05:35] "POST /getData HTTP/1.1" 500 - @app.route("/getData", methods=["POST"]) def getdata(): print("GOT") data_rec = json.loads(server.request.get_json()) print(user) id = data_res["id"] data = asyncio.run(getUser(int(id))) return data xhr.open("POST", "https://flask-webapp.co/getData", true); xhr.getResponseHeader('Content-type', 'application/json') xhr.onload = function() { console.log(this.responseText) let data = JSON.parse(this.responseText) let val = data["val"] let i = data["i"] } params = {"id" : usr_id} xhr.send(params); Access to XMLHttpRequest at 'https://flask-webapp.co/getData' from origin 'https://my-site.co' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. POST https://flask-webapp.co/getData net::ERR_FAILED 500 XHR failed loading: POST "https://flask-webapp.co/getData".Arreglé No 'Access-Control-Allow-Origin' header is present on the requested resource.
NOTA -
importar flask como server
from flask_cors import CORS, cross_origin app = server.Flask(" ") CORS(app, support_credentials=True) @app.route("/getData", methods=["POST"]) @cross_origin(support_credentials=True) def getuser(): print("GOT") print(str(server.request.data)) data_rec = json.loads(server.request.data) id = data_rec["id"] data = getData(int(id)) print(data) return str(data)Y en código js -
let data = JSON.parse(this.responseText)