如何解决调用AI人脸识别出现跨域问题?

2021-12-07 16:53:50 浏览数 (1)

人脸识别已经是智慧化发展的一个重要标志了,一般分为两个步骤:前端人脸图像采集系统通过抓拍采集人脸图像、实时视频流等,后端的智能平台可将前端采集的相关数据统一进行汇聚、处理、存储、应用、管理与共享,并结合人脸识别系统,实现人脸识别功能。上一篇我们讲到人脸识别AI的实现,本文讲一下调用AI识别时出现的问题。

将人脸识别放到公网服务器时,使用html访问的时候,出现跨域的情况:“Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.”

因为html在使用Ajax时,是不能解决跨域的问题,一旦客户端和服务端的代码都不在同一个服务器,则需要考虑跨域访问的问题。

所以从网上大致搜索python的flask解决跨域的问题。直接安装flask_cors库:pip install flask_cors。

安装好flask_cors库,解决跨域的方法有二个,一种是一次性解决跨域的问题(全局解决跨域),第二种是只指定某个路由来解决跨域的问题。

1、使用CORS函数进行全局配置路由来解决跨域

代码语言:javascript复制
from flask_cors import CORS

app = Flask(__name__)
CORS(app, supports_credentials=True) # 全局解决跨域

2、使用@cross_origin来解决某个路由的跨域

代码语言:javascript复制
from flask_cors import cross_origin
app = Flask(__name__)

@app.route('/test')
@cross_origin(supports_credentials=True)
def test():
    ret = {"success": True, "message": ""}
    return json.dumps(ret, ensure_ascii=False)

0 人点赞