名字说明一切。
drf-url-content-type-override的Python项目详细描述
DRF URL内容类型覆盖
drf url content type override允许使用url参数重写请求的内容类型。
为什么我需要这个?
有时重写头中指定的内容类型是有意义的。例如,一些浏览器的xhr,如ie9,无法支持cors。pollyfills如jQuery-ajaxTransport-XDomainRequest或httpplease的oldiexdomain.js插件可以使用支持cors的xdomainrequest来解决这个问题。问题是xdomainrequest只在头中发送text/plain的内容类型。这在发布表单数据时是有问题的。drf url content type override让我们指定一个内容类型,它将重写头值。
安装
pip install drf-url-content-type-override
添加“默认内容协商类”
REST_FRAMEWORK={'DEFAULT_CONTENT_NEGOTIATION_CLASS':'drf_url_content_type_override.URLOverrideContentNegotiation',}
使用量
示例:不同于api的域上的javascript。
jquery.ajax({'url':'http://apidomain.com/api/1/contact?_content_type=application/x-www-form-urlencoded','type':'POST','data':{'name':'Chris'}})
有关更多背景信息,请参见https://github.com/tomchristie/django-rest-framework/pull/1731