我想使用Javascript、jQuery、AJAX在前端调用Django Rest。Request方法是POST,但是当我看到API调用它的调用选项方法时。因此,我开始了解access-control-allow-origin
,我想它需要允许在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
}
});
发布于 2018-11-12 09:31:59
嗯,我很久以前就知道这个答案了,但忘了我当时已经发了这个问题!因此,每当在两个应用程序之间发出http请求时,浏览器首先执行一个OPTION
请求,以检查应用程序是否经过身份验证以向另一个应用程序发出请求。如果身份验证失败,则不会发送其他请求。这就是为什么如果您对api执行邮递员请求,它将在不启用cors的情况下工作。因此,要启用跨原点请求,请在django settings.py
中设置键settings.py
,以便为所有域启用CORS。设置为白名单指定的域
CORS_ORIGIN_ALLOW_ALL = False
,
CORS_ORIGIN_WHITELIST = ('http//:localhost:8000')
P.S.:你必须使用django-CORS-header
软件包。
https://stackoverflow.com/questions/37948991
复制相似问题