如何解决Cherrypy中同源策略导致的跨域问题?
摘要:# 添加:cherrypy.response.headers["Access-Control-Allow-Origin"] = "*"
# 添加:
cherrypy.response.headers["Access-Control-Allow-Origin"] = "*"
cherrypy.response.headers["Access-Control-Allow-Methods"] = "GET, POST, OPTIONS"
cherrypy.response.headers["Access-Control-Allow-Headers"] = "Content-Type"
cherrypy.response.headers["Access-Control-Allow-Credentials"] = "true"
例如:
import cherrypy
import os
import subprocess
import change_format
class PreAnnoAsyncHandle:
@cherrypy.expose
@cherrypy.tools.json_out()
def index(self, scene_dir, frame, frame_num):
''' cherrypy - 解决同源策略跨域问题 '''
# ------------------------------------------------------------------------------
cherrypy.response.headers["Access-Control-Allow-Origin"] = "*"
cherrypy.response.headers["Access-Control-Allow-Methods"] = "GET, POST, OPTIONS"
cherrypy.response.headers["Access-Control-Allow-Headers"] = "Content-Type"
cherrypy.response.headers["Access-Control-Allow-Credentials"] = "true"
# ------------------------------------------------------------------------------
frame_num = int(frame_num)
try:
# 同步数据:将标注后的.label文件同步到本地
res_state = subprocess.call(f'sh async_minio_data.sh {scene_dir}', shell=True)
print(res_state)
# label文件格式转换:将同步后的.label文件转换成本地的.pcd文件
# frame: 当前frame
# frame_num: 从当前帧开始标注frame_num+1帧
root_dir = "/data/sse-images/"
pcd_dir = root_dir + scene_dir + '/lidar'
label_points_dir = root_dir + scene_dir + '/label_points'
pcd_labels_dir = "/data/sse-internal/" + scene_dir + '/lidar/'
pcd_list = []
file_names = os.listdir(pcd_dir)
for file_name in file_names:
file_name = str(file_name)
if file_name.endswith('.pcd'):
pcd_list.append(file_name)
pcd_list = sorted(pcd_list)
# pcd_name_list:存放pcd名称(不包含.pcd后缀)
pcd_
