REST API正常但HTTP请求返回Service Error 404(Not Found)求助
排查Service Error 404(Not Found)问题
嘿,我来帮你搞定这个404错误!从你给出的代码来看,问题大概率出在请求URL的配置上,咱们一步步来梳理:
1. URL缺少协议头
你的请求URL是localhost/Admin/src/api/api.php,浏览器会把这个当成相对路径(相对于当前前端页面的URL),而不是指向本地服务器的API接口。你需要加上http://或者https://前缀,让浏览器明确这是一个独立的服务器地址。
2. 错误的URL实体编码
你在URL里用了&,这是HTML的实体转义字符,但在TypeScript的HTTP请求里,直接用&分隔参数就可以了——&会被当成参数的一部分,导致API无法正确解析你的请求。
修改后的代码示例
// auth.service.ts中的getetudiant方法修改后: getetudiant(username, password) { // 加上http协议头,替换&为& return this.http.get('http://localhost/Admin/src/api/api.php?action=auth&username=' + username + '&password=' + password) .map(res => res.json()); }
额外安全建议
另外提一句:用GET请求传递密码是非常不安全的,建议改成POST请求,把用户名和密码放在请求体里,避免密码出现在URL或者服务器日志中。比如:
getetudiant(username, password) { return this.http.post('http://localhost/Admin/src/api/api.php', { action: 'auth', username: username, password: password }) .map(res => res.json()); }
记得同时修改你的api.php,让它能从POST请求体中读取参数哦。
内容的提问来源于stack exchange,提问作者mohamed farjallah
相关产品推荐
相关产品推荐

