在我的Django應用程序中,我想知道客戶端使用的瀏覽器是否具有AJAX。這是因爲我有,例如,配置文件編輯。我有一個編輯用戶配置文件的版本,另一個將您重定向到編輯頁面。如何知道瀏覽器是否具有AJAX(Django)
我知道現在大多數瀏覽器都有AJAX,但只是爲了確保在Django應用程序中如何檢查該問題?
在我的Django應用程序中,我想知道客戶端使用的瀏覽器是否具有AJAX。這是因爲我有,例如,配置文件編輯。我有一個編輯用戶配置文件的版本,另一個將您重定向到編輯頁面。如何知道瀏覽器是否具有AJAX(Django)
我知道現在大多數瀏覽器都有AJAX,但只是爲了確保在Django應用程序中如何檢查該問題?
我認爲,正確的做法是使用某種優雅降級和檢查AJAX請求中使用Django的request.is_ajax()
方法
https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.is_ajax
您認爲會有類似
if form.is_valid():
if request.is_ajax():
return simplejson.dumps(something)
return redirect('/some-url/)
如果你想知道,如果一個瀏覽器支持AJAX,你需要知道瀏覽器的功能,你需要這個項目:
用戶代理嗅探之類不被看作是最好的解決辦法...如果你可以負擔得起,而是在客戶端使用像hasjs這樣的項目來檢查用戶的瀏覽器是否真的有能力並以某種方式將信息發送到服務器(例如,在沒有會話時提供檢查頁面,讓它執行檢查並將結果發佈到服務器,服務器然後創建會話並記住該會話的功能或類似的功能)。
我還沒有找到辦法做到這一點,所以我可以做的是準備一個無JavaScript版本和我的模板的JavaScript版本。
我加載了一個.js文件,它用AJAX鏈接替換了其他頁面的所有鏈接。因此,如果用戶沒有JavaScript,他會看到所有的原始鏈接和功能,如果他有JavaScript,他會看到所有的AJAX功能。
謝謝!除了所有的選擇,這似乎是最可行的選擇。 –