我有一个本地Angular4
应用程序尝试发布到本地django服务器。问题是我在http.post()
中收到了错误,但我认为这不是由CORS
的问题造成的(I' m设法使用Android应用程序使用此API,我在Angular-app中看不到有关Access-Control-Allow-Origin
)的任何错误消息。请在下面找到我的代码:
// get token from the server
const body = {
username: 'username',
password: 'password'
};
this.http.post('http://website.loc/api/auth/login/', body).subscribe(
res => {
console.log('res:' + res);
},
(err: HttpErrorResponse) => {
console.log('err');
console.dir(err);
}
);
以下是我遇到的错误(似乎无法读取网址):
{headers: Object, status: 0, statusText: "Unknown Error", url: null, ok: false, name: "HttpErrorResponse", message: "Http failure response for (unknown url): 0 Unknown Error", error: ProgressEvent error}
有什么可能导致这类问题的线索?
答案 0 :(得分:2)
您需要找到实际问题,它可能跨域问题。在android,本机应用程序不使用浏览器,它直接调用web api和跨域只在浏览器中。
要查找实际问题,请打开开发人员工具并查看控制台。如果您看到跨域或拒绝访问的消息。这是跨域的问题。您必须在服务器中配置cors。如果没有cors问题,请参阅网络活动中的服务器响应。您可以在网络活动中查看实际的服务请求和失败原因。在角度缓存块中,您无法从配置中获得实际问题。
从https
到non https
网址的来电请求也可能会出现问题。浏览器未授予从https
向non https
网址调用ajax请求的权限。
要修复问题,您必须通过开发人员控制台工具找到实际问题。