我正在構建Python/Flask(完全ajax,無整頁重裝)Web應用程序,並且我更改了我的母版頁的內容時,鋒利的(「#」)在URL上改變符號(Ben Alman, HashChange event)爲什麼包含Python/Flask中的尖銳(「#」)符號的非現有URL不由錯誤處理程序處理
我想捕獲所有的錯誤-404在我的母版頁
以下面的代碼中添加一個錯誤頁面考慮
from flask import Flask, redirect
#WebServerGatewayInterface
class WSGI():
def __init__(self):
self.app = Flask(__name__)
self.app.debug = True
wsgi = WSGI()
@wsgi.app.route("/")
def Home():
return "Home"
@wsgi.app.route("/Contact")
def Contact():
return "Contact"
@wsgi.app.errorhandler(404)
def PageNotFound(error):
return "PageNotFound"
if __name__ == '__main__':
wsgi.app.run(host='127.0.0.1', port=7777)
我想明白爲什麼當我在sharp(「#」)符號之後添加一個不存在的URL,它不會被錯誤處理程序捕獲?
E.g.
127.0.0.1:7777
#It returns "Home"
127.0.0.1:7777/Contact
#It returns "Contact"
127.0.0.1:7777/Aasdasdasdasd
#It returns "PageNotFound"
127.0.0.1:7777/#/asdsaasdasdasdas
#It returns "Home", which is not right since this URL doesn't exist
127.0.0.1:7777/#!/asdsaasdasdasdas
#It returns "Home", not ok...
127.0.0.1:7777/#!/Contact
#It returns "Home", not ok...
你知道*瀏覽器*處理哈希後的所有內容,對嗎?只有'127.0.0.1:7777 /'應該被髮送到服務器。 –