访问Cloudflare中托管的API(而不是Python开发Shell)时遇到问题
所以我有一个网站,让我们称之为micromic.com。该网站在micromic.com/api1、micromic.com/api2下有一些API。我使用ajax向api发送一个请求,并使用Authorization:JWT作为头。我已经设置了接受JWT令牌作为API身份验证的设置。当我通过aws(python manage.py runserver 0.0.0.0:8000)使用虚拟python服务器对其进行测试时,一切都运行良好 但是,当我通过Cloudflare的DNS实时托管实际站点时,每当我尝试访问API时,我都会得到一个未经授权的401。(我可以使用基于会话的方式登录[意味着访问APIview,然后使用凭据登录以访问API]很好,但是当我尝试通过ajax请求(通过micromic.com)或使用“curl-H”授权远程访问API时:JWT访问Cloudflare中托管的API(而不是Python开发Shell)时遇到问题,python,ajax,django,api,cloudflare,Python,Ajax,Django,Api,Cloudflare,所以我有一个网站,让我们称之为micromic.com。该网站在micromic.com/api1、micromic.com/api2下有一些API。我使用ajax向api发送一个请求,并使用Authorization:JWT作为头。我已经设置了接受JWT令牌作为API身份验证的设置。当我通过aws(python manage.py runserver 0.0.0.0:8000)使用虚拟python服务器对其进行测试时,一切都运行良好 但是,当我通过Cloudflare的DNS实时托管实际站点时
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
});
$.ajax({
beforeSend: function(request)
{
request.setRequestHeader("Authorization", " JWT "+jwtToken);
},
url: "/api1/",
dataType: 'json',
method: 'GET',
})
我发现了问题。它不是cloudflare。显然,当您使用mod_wsgi部署到apache时,默认情况下授权头不会传递到wsgi应用程序。因此,我必须将“WSGIPassAuthorization On”添加到httpd.conf文件中