python服务访问ajax调用,CORS错误
Posted
技术标签:
【中文标题】python服务访问ajax调用,CORS错误【英文标题】:python service access to ajax call , CORS error 【发布时间】:2021-11-10 15:18:41 【问题描述】:我迷失了这个问题, 我有一个用 python 编写的服务,我需要通过 ajax 调用从网页访问它
python代码如下:
import flask
from flask import request, jsonify, make_response
from flask_cors import CORS, cross_origin
from datetime import datetime, timedelta
app = flask.Flask(__name__)
app.run(host='0.0.0.0', port=5000)
cors = CORS(app)
app.config['CORS_HEADERS'] = 'Content-Type'
@app.route('/api/v1/resources/device/all', methods=['GET'])
@cross_origin()
def api_all():
[...]
response = jsonify(result)
response.headers.add("Access-Control-Allow-Origin", "*")
return response,status_code
ajax 调用是:
$.ajax(
type: 'get',
crossDomain: true,
dataType: "json",
url: AddressWS + '/api/v1/resources/device/all?type=A',
success: function (result)
//.,...
);
错误是永远
... 已被 CORS 策略阻止:无“访问控制允许来源” 请求的资源上存在标头。
Web 应用程序位于 IIS 下。 问题是 : 如果我在 python 脚本中将 0.0.0.0 设置为地址,我应该在 Web 应用程序中调用哪个地址? 我尝试机器 ipv4 地址但不运行。 我如何解决 cors 问题,我似乎正确地包含了烧瓶库。
感谢大家的热心回复
【问题讨论】:
在 app.run 之前尝试 cors 设置。 【参考方案1】:您的代码中未正确配置CORS。请在下面找到正确 CORS 配置的代码。
import flask
from flask import request, jsonify, make_response
from flask_cors import CORS
from flask_restful import Api
from datetime import datetime, timedelta
app = flask.Flask(__name__)
api = Api(app)
CORS(app)
@app.route('/api/v1/resources/device/all', methods=['GET'])
def api_all():
[...]
response = jsonify(result)
status_code = 'some code'
return response,status_code
if __name__ == '__main__':
app.run()
【讨论】:
嗨,错误是一样的,我完全复制了你发布的代码......我当然错过了一些东西,我是 python 的新手...... [...] 此时您必须定义结果或实现 API 功能。 好的,感谢 Vimlesh 的答案正常运行,抱歉我迟到的答案 @Franz78x 很高兴知道该解决方案适合您。请接受解决方案。以上是关于python服务访问ajax调用,CORS错误的主要内容,如果未能解决你的问题,请参考以下文章
ajax 查询中 Java + Spring 的 CORS 策略错误
无法解决对 Express API 的 AJAX 调用的 CORS 错误
从 Ajax 调用 Spring Boot Rest API 时出现 CORS 错误