仅在打开Chrome DevTools时弹出警报

时间:2018-07-16 23:15:39

标签: javascript json ajax dom flask

我正在尝试使用flask,SQLAlchemy,AJAX和JSON创建一个聊天室应用程序。我要实现的功能之一是,当一个用户在其他人创建的聊天室中时,如果该聊天室被删除,则会弹出一条消息,并将其重定向回主页。

我的问题是,当我在一个常规的chrome窗口中与一个用户测试此用户,而在一个隐身窗口中与另一个用户进行测试(因此他们不会共享同一个cookie jar)时,除非我拥有chrome,否则不会显示警报DevTools在侧面打开。

这是我的js代码:

function requestResponse() {
    if (httpRequest.readyState == XMLHttpRequest.DONE) {
        if (httpRequest.status == 200) {
            var messages = JSON.parse(httpRequest.responseText);
            if (messages == "deleted") {
                alert("The owner has deleted the chatroom.");
                window.location.href = "/login";
            } else if (messages.length != 0) {
                var table = document.querySelector(".message-board");
                for (var i = 0; i < messages.length; i++) {
                    var row = document.createElement("tr");
                    var cell = document.createElement("td");
                    cell.innerHTML = messages[i].content;
                    row.appendChild(cell);
                    table.appendChild(row);
                    lastUpdate = messages[i].time;
                }
                updateScroll();
            }
        }
    }
}

这是我的python api路由:

@app.route('/api/chatroom', methods = ['GET', 'POST'])
def handle_room():
    if ("chatroom" in session):
        if request.method == 'GET':
            lastUpdate = request.args.get("last")
            chatroom = Room.query.filter_by(name = session["chatroom"]).first()
            if chatroom:
                newMessages = [message.makeDict() for message in chatroom.messages if message.time > float(lastUpdate)]
                return jsonify(newMessages)
            else:
                return jsonify("deleted")
        elif request.method == 'POST':
            newMessage = Message(request.form["contents"], time.time())
            chatroom = Room.query.filter_by(name = session["chatroom"]).first()
            chatroom.messages.append(newMessage)
            db.session.commit()
            lastUpdate = request.form["last"]
            newMessages = [message.makeDict() for message in chatroom.messages if message.time > float(lastUpdate)]
            return jsonify(newMessages)
    else:
        return render_template("blocked.html")

我仍然对AJAX,JSON和js还是陌生的,因此使用js警报与DOM混淆可能是另一个问题。任何帮助将不胜感激!

0 个答案:

没有答案