无法发布到本地服务器
问题描述:
我有本地Angular4
应用程序试图发布到本地django服务器。问题是我在http.post()
中遇到错误,但我不认为它是由CORS
(我正在设法使用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);
}
);
这是我得到的错误(似乎这不是能够读取URL):
{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}
任何线索什么可能导致这些类型的问题?
答
您需要找到实际问题,它可能会跨域问题。在android中,原生应用程序不使用浏览器,它直接调用web api并跨域仅在浏览器中。
要查找实际问题,请打开开发人员工具并查看控制台。如果您看到类似跨域或拒绝访问的消息。这是跨域问题。您必须在服务器中配置cors。如果没有cors问题,请参阅网络活动中的服务器响应。您可以在网络活动中看到实际的服务请求和失败原因。在角度缓存块中,您无法从配置中获得实际问题。
这也可能发出呼叫请求从https
到non https
url。浏览器不允许调用从https
到non https
url的ajax请求。
要解决问题,您必须通过开发人员控制台工具查找实际问题。
这不是Angular的问题。这是您的服务器上的错误。请检查您是否返回有效的JSON – TheUnreal
@TheUnreal My服务器实际返回一个对象({“auth_token”:“value”}。是否有办法让Angular接受这种输出?否则输出结果如何? – h4k1m