[英]Get parameters from a flask api
我试图使我的角度应用程序与Flask内置的API通信。 一切顺利,直到我尝试向Flask发出get请求,并尝试在Flask中检索其参数。 注意:如果不涉及参数,则可以,并且以其他方式发送参数也可以。
所以这是我的烧瓶代码:
app = Flask(__name__)
CORS(app,resources={r"/api/*": {"origins": "*"}})
class Load(Resource):
def get(self) :
return json.dumps(['test1','test2','test3'])
class Save(Resource):
def get(self) :
print json.loads(request.args.get('data'));
return make_response('', 201)
api = Api(app)
api.add_resource(Load, '/api/load')
api.add_resource(Save, '/api/save')
这是我的客户端代码
$scope.load = function()
{
$http.get("http://127.0.0.1:5000/api/load").then(function(result)
{
info = JSON.parse(result.data);
$scope.elems.push(...info); // Some array is filled
});
}
$scope.save = function()
{
$http.get("http://127.0.0.1:5000/api/save",{data: JSON.stringify($scope.elems)})
.then(function(result){});
}
“加载”效果很好,而“保存”却给我以下错误:Access-Control-Allow-Origin不允许使用Origin null。
万一它可能会帮助我尝试删除“ request.args.get”行,但我没有收到任何错误。 有什么线索吗?
我解决了这个问题。 我不确定为什么/怎么做,如果有人有更完整的答案,请随时添加/修改。 因此,问题在于CORS(app)允许一种通信方式,而不允许另一种通信方式。 要修复它,您必须在从angularjs执行请求时添加正确的标头。
为此,我认为不可能使用$ http.get,因为您无法指定标头。 可能是:
$http({
method: 'GET',
url: '/someUrl',
headers: {
'Access-Control-Allow-Origin': '*'
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.