1

我有一个本地Angular4应用程序试图发布到本地 django 服务器。问题是我在 中遇到错误http.post(),但我认为这不是CORS由关于 Angular 应用程序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}

任何线索可能导致这些问题?

4

1 回答 1

2

您需要找到实际问题,它可能是跨域问题。在android中,本机应用程序不使用浏览器,它直接调用web api,跨域仅在浏览器中出现。

要查找实际问题,请打开开发人员工具并查看控制台。如果您看到类似跨域或拒绝访问的消息。这是跨域的问题。您必须在服务器中配置 cors。如果没有 cors 问题,请在网络活动中查看服务器响应。您可以在网络活动中看到实际的服务请求和失败原因。在角度缓存块中,您无法从配置中获得实际问题。

https这也可能与从到non httpsurl的调用请求有关。浏览器不允许从 url 调用 ajaxhttps请求non https

要解决问题,您必须通过开发人员控制台工具找到实际问题。

于 2017-09-24T14:02:29.987 回答