我目前正在尝试设置一个异步函数,以将小的JSON加载到页面中。这只是一个测试,因为我对jQuery和XHR缺乏经验。在将服务器设置为支持CORS之前,我一直被困在'Access-Control-Allow-Origin'Origin null上。现在的问题是我无法解决此问题。我已经检查了客户端和服务器端,从中可以看到一切正常。我也在这里使用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
当我单击按钮时,控制台将输出错误: Console Output
那么,我想念什么?我真的很想了解问题的原因,因为我将在以后进行复制。预先感谢。