Сбой $.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