【发布时间】:2022-01-21 01:42:12
【问题描述】:
我对预检请求有疑问。 我以这种格式通过 jQuery Ajax 从 JavaScript 调用由 Flask python 提供的 SSL(通过临时自签名证书)API:
WS_URL='https://192.168.2.15:444';
idata=JSON.stringify({ atext: rawtext })
$.ajax({
type: 'post',
url: WS_URL+'/method1',
data: idata,
dataType: "json",
async:true,
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Credentials':'*',
'Access-Control-Allow-Headers':'*',
'Access-Control-Allow-Methods':'*'
},
xhrFields: {
withCredentials: true
},
contentType: "application/json; charset=utf-8",
crossDoman: true,
success: function(rsp,request){
if (rsp.error[0].error_code==0){
fill_answer_list(rsp.answers);
}
else {
alert("Error: "+rsp.error.error_code)
}
},
error: function(xhr){ //),status,error) {
console.log(xhr.responseText);
}
});
在我的 Flask python API 中我也有:
from flask import Flask, abort, request, make_response, jsonify,Response
from flask_cors import CORS,cross_origin
app = Flask(__name__)
cors=CORS(app,support_credentials=True)
app.config['CORS_HEADERS'] = 'application/json'
app.config['JSON_AS_ASCII'] = False
app.run(ssl_context='adhoc',debug=True)
最后,我通过 Flask 在命令提示符模式下使用以下命令运行此服务:
set FLASK_ENV=development
set FLASK_APP=tapi.py
flask run --host 192.168.2.15 --port 444 --cert=adhoc
使用此配置,我收到以下错误:
跨域请求被阻止:同源策略不允许读取 https://192.168.2.15:444/method1 的远程资源。 (原因:CORS 请求未成功)。状态码:(空)。
根据这个错误,我无法从我的 API 获取任何数据。 如果可能,请帮助我,我应该怎么做才能解决这个问题?
【问题讨论】:
标签: python jquery flask ssl cors