【问题标题】:python service access to ajax call , CORS errorpython服务访问ajax调用,CORS错误
【发布时间】: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 设置。

标签: python jquery python-3.x ajax


【解决方案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 很高兴知道该解决方案适合您。请接受解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-08
  • 2017-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多