You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular使用jQuery向PHP文件发POST请求出现404错误如何解决?

问题根因

ng serve启动的localhost:4200是Angular专属的前端静态开发服务,仅支持返回编译后的前端静态资源(HTML、CSS、JS、图片等),没有PHP解析运行能力,也不会处理动态接口请求,所以直接请求assets目录下的PHP文件会返回404。

解决步骤
  • 搭建本地PHP运行环境,可选用XAMPP、WAMP集成包,也可以直接用PHP内置服务启动,端口建议和4200区分开(比如用8000端口)。将sendEmail.php放到PHP服务的Web根目录下,启动后先直接访问http://localhost:8000/sendEmail.php测试是否能正常返回内容。
  • 修改Angular中的请求地址,不要使用相对路径,替换为PHP服务的完整请求路径:
$.post("http://localhost:8000/sendEmail.php", {test: 'test'}).done(function (res){
  alert("success,返回内容:" + res);
});
  • 解决本地跨域问题:Angular的4200端口请求PHP的8000端口属于跨域请求,需要在PHP文件头部添加跨域允许头:
<?php
header('Access-Control-Allow-Origin: http://localhost:4200');
header('Access-Control-Allow-Methods: POST');
echo $_POST['test'];
?>
  • 生产环境部署建议:将前端静态资源和PHP接口部署到同一域名下,或者通过Nginx反向代理把接口请求统一转发到PHP服务,无需额外配置跨域。
  • 可选优化:Angular官方不推荐使用jQuery发送请求,建议使用框架内置的HttpClient模块,更方便做请求拦截、错误统一处理等操作。

内容的提问来源于stack exchange,提问作者Itai Elidan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 18:24:02