我试图在本地http服务器上发出一个Ajax请求来运行php文件.我收到错误405:我的浏览器控制台中不允许使用该方法.
我试过一些类似问题的答案无济于事.我正在使用npm http-server来托管这个.我已经尝试在http服务器上启用CORS,但这并没有解决问题.
我可以将我的问题缩小到以下代码(使用给出的答案here).
/test.html:
/echo.php:
我从npm使用http-server启动服务器.当我尝试发出POST请求(即单击按钮)时,我在服务器日志中收到以下错误:
[...] "POST /echo.php" Error (404): "Not found"
echo.php文件肯定存在 – 我可以向同一个URL发出GET请求.我还在浏览器控制台中看到以下错误:
POST http://127.0.0.1:8080/echo.php 405 (Method Not Allowed)
send @ jquery.min.js:4
ajax @ jquery.min.js:4
(anonymous function) @ test.html:15
dispatch @ jquery.min.js:3
q.handle @ jquery.min.js:3
当我发出GET请求时,没有出现错误,并且echo.php的代码放在< p>内,正如我所料.
这是我的服务器配置问题还是只是代码问题?
更新1:
我没有太多的信息可以从http服务器中获取.这是包含执行命令的完整日志:
$http-server --cors -p 8080
Starting up http-server,serving ./
Available on:
http://127.0.0.1:8080
Hit CTRL-C to stop the server
[Sat Sep 24 2016 16:47:14 GMT-0400 (EDT)] "GET /test.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/53.0.2785.101 Safari/537.36"
[Sat Sep 24 2016 16:47:19 GMT-0400 (EDT)] "POST /echo.php" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/53.0.2785.101 Safari/537.36"
[Sat Sep 24 2016 16:47:19 GMT-0400 (EDT)] "POST /echo.php" Error (404): "Not found"
更新2
http服务器毕竟不支持POST请求.请参阅下面的答案……
最佳答案
我想到了!有点愚蠢,但希望这对遇到此问题的其他人有帮助.我正在浏览http-server repo并遇到以下GitHub issue.
npm http-server不支持POST请求.它是一个只读服务器,所以没有代码来促进这种类型的请求.
我现在正在研究JSON-server,它支持POST请求.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。