Laravel项目内部AJAX请求返回status 0问题求助
解答
嘿,这个问题我之前也碰到过!其实不是CORS的锅,是你AJAX请求的URL格式写错了,导致浏览器解析出了错误的请求地址。
问题出在哪?
你写的localhost:8000/api/partners没有加协议前缀(http://或https://),浏览器会把它当成当前页面路径下的相对地址。举个例子,如果你的后台页面是http://localhost:8000/admin/dashboard,浏览器实际会请求http://localhost:8000/admin/localhost:8000/api/partners——这个地址显然不存在,所以请求直接失败,返回status 0。
怎么修复?
有两种简单的修正方式:
使用完整的绝对路径:
在URL前加上协议前缀,确保浏览器能正确识别域名:url: "http://localhost:8000/api/partners"使用根相对路径(更推荐):
因为API和后台同域,直接用斜杠开头的相对路径,浏览器会自动拼接当前页面的协议、域名和端口:url: "/api/partners"这种方式更灵活,后续部署到生产环境时不用修改地址。
额外的排查建议
- 打开浏览器开发者工具(F12)的Network标签,查看这个AJAX请求的
Request URL,确认是不是和预期一致。 - 检查请求头里的
Authorization是否正确携带了Token,避免Token过期或格式错误(比如Bearer后面有没有空格)。 - 看看Laravel的日志文件(
storage/logs/laravel.log),有没有相关的错误提示,比如路由不存在、权限验证失败等。
按照上面的方法修改后,你的请求应该就能正常返回数据啦!
内容的提问来源于stack exchange,提问作者JacopoStanchi
相关产品推荐
相关产品推荐

