Сбой $.ajax() с django

Я пытаюсь получить статический файл (скрипт js) от django (сервер разработки) с помощью jquery ajax, но что-то мешает $.ajax обещаю решить.

Вот мой вызов ajax:

    $.when(
        $.ajax({dataType: "script", cache: true, url: "/static/ajax_upload/js/jquery.iframe-transport.js"}),
        $.ajax({dataType: "script", cache: true, url: "/static/ajax_upload/js/ajax-upload-widget.js"})
    ).then(function() {
        console.log( "Load was performed." );
        AjaxUploadWidget.autoDiscover();
        $("#level-modal").foundation("reveal", "open");
    }, function () { alert("An error occured, try reloading the page."); });

Ничего в then функция называется успехом или неудачей.

Странно то, что работает тот же самый вызов ajax с файлами из Google:

    $.when(
        $.ajax({dataType: "script", cache: true, url: "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"}),
        $.ajax({dataType: "script", cache: true, url: "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"})
    ).then(function() {
        console.log( "Load was performed." );
        AjaxUploadWidget.autoDiscover();
        $("#level-modal").foundation("reveal", "open");
    }, function () { alert("An error occured, try reloading the page."); });

Я думаю, что-то может быть не так с моими заголовками ответов, но я получаю статус 200, и я не эксперт по Http.

Ответ от Джанго:

HTTP/1.0 200 OK
Date: Sat, 24 Jan 2015 22:57:35 GMT
Server: WSGIServer/0.1 Python/2.7.3
Last-Modified: Sat, 24 Jan 2015 18:45:52 GMT
Content-Length: 9476
Content-Type: application/javascript

Ответ от Google:

access-control-allow-origin:*
alternate-protocol:443:quic,p=0.02
cache-control:public, max-age=31536000
content-encoding:gzip
content-length:29524
content-type:text/javascript; charset=UTF-8
date:Sat, 24 Jan 2015 22:57:38 GMT
expires:Sun, 24 Jan 2016 22:57:38 GMT
last-modified:Fri, 19 Dec 2014 15:56:50 GMT
server:sffe
status:200 OK
timing-allow-origin:*
vary:Accept-Encoding
version:HTTP/1.1
x-content-type-options:nosniff
x-xss-protection:1; mode=block

1 ответ

Решение

Пройдя через все, что я мог придумать,
Я наконец нашел проблему.
Это была Дайаксика. Это явно переопределяет некоторые вещи в jquery.
Прокомментировав это, я смог получить нормальное поведение.

Я обнаружил, что проблема может быть решена для людей, использующих jquery, добавив DAJAXICE_XMLHTTPREQUEST_JS_IMPORT = False в ваших settings.py

Другие вопросы по тегам