我想使用Javascript,jQuery,AJAX在前端调用Django Rest API.请求方法是POST,但是当我看到API调用其调用OPTIONS方法时.所以,我开始了解访问控制允许来源,我想这需要在API中允许.为此,我使用了django-CORS-headers包,但仍调用了OPTIONS方法.
代码是这样的:
jQuery.ajax({
url: API_url,
headers:headers,
dataType: "JSON",
type: "POST",
crossDomain: true,
xhrFields: {
withCredentials: true
},
success: function( response, jqXHR ) {
do something here
}
});
解决方法:
好吧,我很久以前就学到了这个答案,但忘记了我已经发布了这个问题!
因此,每当在两个应用程序之间发出http请求时,浏览器首先执行OPTION请求以检查应用程序是否经过身份验证以向其他应用程序发出请求.如果身份验证失败,则不会发送其他请求.这就是为什么如果你对api做邮递员请求,它将在不启用cors的情况下工作.因此,要启用跨源请求,请在django settings.py中设置密钥CORS_ORIGIN_ALLOW_ALL = True,以便为所有域启用CORS.将指定的域设置列入白名单
CORS_ORIGIN_ALLOW_ALL =假,
CORS_ORIGIN_WHITELIST =(‘http //:localhost:8000’)
P.S.:你必须使用django-CORS-header包.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。