当我向我的 RESTful Tastypie API 发布一个新资源时,我创建了一个资源并得到一个 201 响应,如下所示:
HTTP/1.1 201 CREATED
Content-Type: text/html; charset=utf-8
Date: Wed, 19 Sep 2012 01:02:48 GMT
Location: http://example.com/api/v1/resource/12/
Server: gunicorn/0.14.6
Content-Length: 0
Connection: keep-alive
伟大的!除了我发布到一个 HTTPS URL 并希望Location
返回一个 HTTPS 标头。我怎样才能配置tastepie来做到这一点?
添加
我正在使用一些中间件来强制使用 SSL,但我认为这不是导致此问题的原因。无论如何,这里是:
class SSLifyMiddleware(object):
# Derived from https://github.com/rdegges/django-sslify
def process_request(self, request):
if not any((not settings.FORCE_SSL, request.is_secure(), request.META.get('HTTP_X_FORWARDED_PROTO', '') == 'https')):
url = request.build_absolute_uri(request.get_full_path())
secure_url = url.replace('http://', 'https://')
return HttpResponseRedirect(secure_url)
添加
这是一个 Heroku 应用程序。