为啥ajax发GET请求就成功,POST请求则报错

500 就是服务器错误,不是服务端的错误就是nginx层的错误。实际上不存在任何静态文件的概念。只要是服务器上的文件,你要访问就要经过后端逻辑。只是如果真的没有经过后端,那也必然要有个静态服务器,这个服务器也有可能报错,总之肯定是后台报错就是了。
■网友
我更新下吧,Query string的编码方式并不是没有要求的,HTTP协议里有过完整的设计定义,此外还有URL本身也有字符集的概念,像你传参用的"{","}" 这些字符都是保留字符,使用之前都是需要转义的。而且我也不明白你们要传递一个深层的OBJECT的原因,之所以有这种需求,往往是因为设计的不合理。当然,我也说了,你事实上也可以让后端去解析这类基于"特别约束"传递的参数,但显然,这是不符合http规范的。另外,你一直说“是不是有哪个规范说明了”,答案就是HTTP协议本身(当然,我手边没有具体的针对某一需求的RFC),HTTP规范就是这么定义“操作”语义的,在它的定义里,GET视为对资源的请求,而它本身是安全以及幂等的,而POST有修改的语义隐含在操作中,而且很重要的一点,POST不是幂等的。 因此从规范的角度来说,提倡用GET请求资源,这是网站设计良好的体现。此外还有一点就是:要与http 1.1兼容,最低只需要实现GET和HEAD方法就可以了,所以构建者完全可以写一个没有POST方法的静态服务器,所以你用POST当然500了(我不知道HBuilder是不是实现了POST,我只拿它做页面的preview而已,不用来模拟数据交互的)。======================================================================第一,Query string不是你这么序列化的第二,500么就是内部服务器错误咯,所以我猜是后端做实体转换的时候报错了,自己打个断点不就知道了?第三,从Query string来看,我觉得你还是先确定你AJAX是使用方法是无误的吧,建议你暂时把jQuery拿进来,用它封装的AJAX做个测试。
■网友
一般静态文件服务器就是禁止post,你要实现的话,必须改静态文件服务配置,我没改过,所以不用谢我了。
■网友
有报错,我的第一直觉是 看日志。你找到500的日志 问题应该就解决了。
■网友
我也刚遇到这样的问题,用hbulider内置的服务器有问题,可以自己安装一个服务器就行了,我用的是 tomcat

■网友
某链接在微博客户端打开报405不允许的错误已解决。
原因:该链接应该是get请求,微博客户端是以post请求的,nginx处理静态页面不允许post请求,否则就报405。
【为啥ajax发GET请求就成功,POST请求则报错】 解决:在nginx层将报错405的链接修改为get请求,
error_page 405 =200 @405; location @405 { root /var/www/html/www.abc.com/; proxy_method GET; proxy_pass http://192.168.10.110:82/$request_uri; }

■网友
post要添加头文件 你添加了没get不需要头文件


    推荐阅读