对 Flask 进行 ajax 调用时出现混合内容错误

Posted

技术标签:

【中文标题】对 Flask 进行 ajax 调用时出现混合内容错误【英文标题】:Mixed Content error when making ajax call to Flask 【发布时间】:2015-11-26 12:11:25 【问题描述】:

我正在尝试从 https 页面使用 jQuery 进行 ajax 调用

javascript

var load = function (param1, param2) 
    return $.getJSON("https://www.domian.com/thing/" + param1 + "/" + param2 + "/", function (data) 
        // do stuff
    )

烧瓶端点

@app.route('/thing/<param1>/<param2>/')
def load(param1, param2):
    thing = get_thing(param1,param2)
    if thing:
        return jsonify(thing)
return jsonify(error="thing not found.")

我已经尝试添加

@app.after_request
def after_request(response):
    response.headers.add('Access-Control-Allow-Origin', '*')
    return response

我也尝试了各种不同的 url,例如:thing/ + blah,添加/删除斜杠无济于事

我也在使用 Flask-SSLify

这是 Chrome 中的错误:

混合内容:“https://www.domain.com/blah/”处的页面通过 HTTPS 加载,但请求了不安全的 XMLHttpRequest 端点“http://www.domain.com/thing/param1/param2/”。此请求已被阻止;内容必须通过 HTTPS 提供。

有人遇到过类似的问题吗?

【问题讨论】:

【参考方案1】:

不要返回完整的$.getJSON,而是尝试返回响应:

var load = function (param1, param2) 
    $.getJSON("https://www.domian.com/thing/" + param1 + "/" + param2 + "/", function (data) 
        // do stuff
        return data;
    )

【讨论】:

您好 Manwal,感谢您的提示,这似乎仍然是个问题

以上是关于对 Flask 进行 ajax 调用时出现混合内容错误的主要内容,如果未能解决你的问题,请参考以下文章

通过 jQuery 进行 ajax 调用时出现 403 错误

尝试使用 struts 中的 ajax 更新 jsp 页面上的内容时出现问题(触发 onChange 事件时)

向 web api 发送 ajax 请求时出现 401 Unauthorized

访问托管在不同端口的 WebSocket 服务器时出现混合内容错误

使用令牌标头进行后 API 调用时出现 405 错误

使用 Ajax 调用 Web Api 方法时出现错误 400