我正在使用一个似乎是在 Django 上构建的端点。
尝试通过 POST 设置基本的 aJax 通信,我写道:
jQuery.ajax({
type: "POST",
url: "http://API-ENDPOINT-URL",
data: "",
dataType: "json",
crossDomain: false,
beforeSend: function(xhr){
xhr.withCredentials = false;
xhr.setRequestHeader('Authorization', 'Token <TOKEN THAT I WAS PROVIDED>' );
},
success: function(results)
{
reqListener(results)
}
});
使用这些代码发生了一些事情:
- 我第一次遇到 CORS 错误是因为我尝试在本地服务器上进行构建。我安装了这个chrome extension绕过它。 (我无法访问服务器来启用 CORS)
2.我在控制台中收到此错误:
XMLHttpRequest cannot load http://API-ENDPOINT-URL. Response for preflight has invalid HTTP status code 401
- 查看 Chrome 控制台的网络请求,我发现返回了以下内容:
{"detail":"Authentication credentials were not provided."}
我错过了什么?我是否错误地发送了身份验证 token ?
最佳答案
在未启用 CORS 的情况下通过 Javascript 进行 token 身份验证是一项自杀任务。
像我一样帮自己一个忙,只需通过服务器端完成即可。
关于javascript - Django - 未提供身份验证凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43573366/