コンテキスト:クロムのブラウザ拡張機能は、JQueryを使用してリモートのdjangoアプリケーションからの応答を要求します。 DjangoはリクエストがAJAX経由で行われ、 "Hello AJAX!"と応答することを認識します。私は自分の運動をthis great exampleから外しています。このリクエストはクロムエクステンションから行われているため、リクエストはクロスサイトで行われていますので、Djangoビューに@CSRF_exempt
デコレータを使用しました。DjangoはJQueryのAJAXリクエストでis_ajaxがfalseであると言います
問題:私のDjangoのビューは、AJAX要求として要求を認識しておらず、代わりにHello AJAX!
応答のそれはHello not AJAX!
を応答します。
私のDjangoのビュー:
(URL /xhr_test
は、次のビューを使用しています)
@csrf_exempt
def check_login_extension(request):
if request.is_ajax():
message = "Hello AJAX!"
else:
message = "Hello not AJAX"
return HttpResponse(message)
私のjQueryの要求:
function xhrconnect() {
$.get("http://localhost:8000/xhr_test", function(data) {
document.getElementById('xhrmsg').innerHTML = (data);
});
}
「http:// localhost:8000/xhr_test /」というURLに後続のスラッシュを追加してみてください。 –
試してみましたが効果はありません。 JQueryが後続のスラッシュを必要とするAJAXリクエストを送信する方法がありますか?ビューが 'Hello not AJAX'というメッセージで応答しているので、'/xhr_test'が正しいビューに正しく解決されていることがわかります。 JQueryが正しいURLを見つけられなかった場合、メッセージはまったくありません。 – jchung