В настоящее время я пытаюсь установить асинхронную функцию для загрузки небольшого JSON на страницу.Это всего лишь тест, так как я не очень разбираюсь в jQuery и XHR.Я застрял на нулевом поле «Access-Control-Allow-Origin» Origin до тех пор, пока не настроил свой сервер на поддержку CORS.Проблема в том, что я не могу решить эту проблему.Я уже проверил клиентскую и серверную стороны и из того, что я вижу, все должно работать.Я тоже использую Django Framework.
Это небольшая тестовая кнопка на странице.JSON входит в testeJSON div
<button type="button" id="btnTest">Teste JSON</button>
<div id="testeJSON"></div>
Вот код JavaScript для него
$("#btnTest").click( function() {
let jfilho = $.ajax({
method: 'GET',
url: 'http://www.pythonanywhere.com/user/zzzaik/files/home/zzzaik/OPE_Draco/core/backend/dataJson.py',
headers:{
'Access-Control-Allow-Origin':'http://zzzaik.pythonanywhere.com/',
'Content-Type':'application/x-www-form-urlencoded;charset=utf-8'}
});
$("#testeJSON").text(jfilho);
});
Так что скрипт должен получить доступ к этой функции здесь внутри dataJson.py
def getClassificacoes(request):
data = {
'estilos':['1','2','3'],
'cores':['a','b','c'],
'regiao':['um','dois','tres'],
'tamanho':['s','m','l']
}
if request.method == 'GET':
return HttpResponse(json.dumps(data), content_type="application/json")
return HttpResponse("This is not a GET request", content_type="text/plain")
И я уверен, что CORS включен на сервере.Источник установлен, чтобы принять все, потому что я в настоящее время тестирую.Как только я получу эту работу, я устанавливаю правильные домены.
INSTALLED_APPS = [
'...',
'core',
'jquery',
'corsheaders',
]
MIDDLEWARE = [
'...',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'...',
]
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_METHODS = default_methods
CORS_ALLOW_HEADERS = default_headers
Когда я нажимаю кнопку, консоль выдает ошибку: Вывод на консоль
Итак,что мне не хватает?Мне бы очень хотелось понять причину проблемы, так как я собираюсь повторить это позже.Заранее спасибо.