你好所有的好人。
我已经测试了我在互联网上可以找到的所有内容,但没有任何方法可以解决这个问题。我真的希望这里有人可以帮助我解决这个问题。
当我尝试从后端向我的烧瓶 API 发出“补丁”请求时,我收到此错误(GET、DELETE 和 PUT 工作正常):
访问从源“https://MYBACKEND-NOTREALURL.com”获取“https://MYAPI-NOTREALURL.com”已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:“访问” -Control-Allow-Origin' 标头包含多个值 'https://MYBACKEND-NOTREALURL.com, *',但只允许一个值。让服务器发送带有有效值的标头,或者,如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。
这就是我的 API 代码的编写方式:
from flask_cors import CORS, cross_origin
from flask import render_template, redirect, flash, request, url_for, jsonify, session, make_response
from flask_restful import Api, Resource, reqparse
import requests
app = Flask(__name__)
cors = CORS(app, resources={r"/*": {"origins": "*"}})
api = Api(app)
class ordersByID(Resource):
def get(self,ID_ORDER):
****
return jsonify(data)
def patch(self,ID_ORDER):
req321 = request.form
result = updateOrder(req321,ID_ORDER)
return result
def delete(self,ID_ORDER):
****
return result
def put(self,ID_ORDER):
****
return result
api.add_resource(ordersByID, "/orders/id/<string:ID_ORDER>")
if __name__ == '__main__':
app.run(debug=True)
我已经测试了我在互联网上可以找到的所有内容,但在尝试执行补丁请求时没有任何效果。我正在从弹出窗口获取补丁请求。
<form action="{{ **https://MYAPI-NOTREALURL.com** }}" id="popupForm" method="patch" onsubmit="formFetch(event,this,'patch')">
您可以在下面查看 javascript 代码。
function formFetch(e,form,method) {
result = fetch(form.action, {method:method, body: new FormData(form)})
.then(response => response.json())
.then(data => document.getElementById('submitedFormConfirmationText').innerHTML = data['DB_Result']
);
e.preventDefault();
document.getElementById('submitedFormConfirmation').style.display = 'inline';
};
我真的希望有人可以帮助我解决这个问题而无需重做整个代码?