这个问题专门关于Chalice框架。我已经知道什么是CORS标头以及如何读取错误消息。但是,我很想让它与Chalice一起使用。
我的路线定义为:
@app.route('/list-photos', methods=['GET'], cors=True)
然后我使用浏览器代码访问它
let Http = new XMLHttpRequest();
Http.open("GET", apiUrl + "list-photos?js=" + JSON.stringify(data));
Http.onreadystatechange=(e)=>{
if (Http.readyState == 4 && Http.status == 200) {
...
为什么它失败并显示以下错误?
从源访问“ https:// ...”处的XMLHttpRequest “ http://localhost”已被CORS政策禁止:否 请求中存在“ Access-Control-Allow-Origin”标头 资源。
我还尝试将headers={ 'Access-Control-Allow-Origin': "'*'" }
添加到响应中,但这没什么区别。
更新
经过更多测试后,我注意到app.api.binary_types =['*/*']
设置似乎与cors=True
冲突。为了解决此问题,我决定将应用程序分成两个部分,而不是为此花费更多时间。如果有人知道适当的解决方案,我将继续公开这个问题。