Revision fced411d snf-django-lib/snf_django/lib/api/__init__.py
b/snf-django-lib/snf_django/lib/api/__init__.py | ||
---|---|---|
218 | 218 |
@api_method(token_required=False, user_required=False) |
219 | 219 |
def api_method_not_allowed(request): |
220 | 220 |
raise faults.BadRequest('Method not allowed') |
221 |
|
|
222 |
|
|
223 |
def allow_jsonp(key='callback'): |
|
224 |
""" |
|
225 |
Wrapper to enable jsonp responses. |
|
226 |
""" |
|
227 |
def wrapper(func): |
|
228 |
def view_wrapper(request, *args, **kwargs): |
|
229 |
response = func(request, *args, **kwargs) |
|
230 |
if 'content-type' in response._headers and \ |
|
231 |
response._headers['content-type'][1] == 'application/json': |
|
232 |
callback_name = request.GET.get(key, None) |
|
233 |
if callback_name: |
|
234 |
response.content = "%s(%s)" % (callback_name, |
|
235 |
response.content) |
|
236 |
response._headers['content-type'] = ('Content-Type', |
|
237 |
'text/javascript') |
|
238 |
return response |
|
239 |
return view_wrapper |
|
240 |
return wrapper |
Also available in: Unified diff