为什么ajax发GET请求就成功,POST请求则报错?

(1)首先说明的是请求的URL是一个静态资源,比如一个json文件。
(2)现在现象是发GET请求就成功,POST请求则报错。
(3)最新发现:就算是GET请求,如果把JSON数据的序列化字符串直接作为query string也会导致报错。就是这样:some_url?{%22username%22:%22username%22,%22password%22:%22password%22}
(4)所报错误都是一样的:Failed to load resource: the server responded with a status of 500 (Internal Server Error)
添加修改:
(5)我请求的是一个静态资源,不存在后端逻辑代码,所以是打不了断点的。
(6)有人要问我获取一个静态资源,直接用GET方式,而且也不用传参数啊。实际上我是一个前端开发,这里只是用一个json文件来作为返回值来模拟后端。等到和后端开发人员集成的时候,需要换成实际的URL,那时候就需要传参数了,而且也可能是POST方式。
(7)我现在就是用jQuery的ajax实现的,传递query string就是用的其中的data属性。
如果是:
(a)data: JSON_OBJECT 那么会使用jQuery本身的序列化方式来序列化,就没有问题
但如果是:
(b)data: JSON.stringify(JSON_OBJECT) 直接传递这个序列化后的字符串就会报错
(8)已经和后端开发人员测试过,如果是存在后端逻辑代码,也就是不直接请求一个静态文件。那么所有情况都不会报错。
(9)我用的编辑器是HBuilder,用的是它自带的web服务器。具体的实现代码可以查看我在HBuilder论坛上发的求助帖:ajax只能发起GET请求,而不能发POST请求,否则报500错误
(10)经过测试,发现如果是提交表单的时候,也存在类似的问题:将表单的action指向一个temp.html文件,如果method=post,那么会报500错误;如果method=get,则可以正常转到temp.html文件。
(11)解决的方法当然就是把后端也搞起来。实际上我更想知道为什么会有这种现象。大家经常讨论GET和POST有什么区别,一说就是一大堆,但却没有指出这一点。

$.ajax({
url: "abc.json",
type: "GET" //不报错
//type: "POST" //报错
});

总结:
静态服务器没有实现POST方法

关注者

35

被浏览

为什么ajax发GET请求就成功,POST请求则报错?的更多相关文章

  1. 【前台 ajax】前台ajax请求,地址正确,但是报错不进入后台

    前台ajax请求,地址正确,但是报错不进入后台 出现上述问题,可能的情况是 1.ajax用的post,而后台限定用get,或者所有的post请求都被拦截,所以不能正常进入并且报错403 @Reques ...

  2. 同一台服务器请求easyswoole的一个websocket接口报错

    求助大神啊!file_get_contents报这个错:failed to open stream: Connection timed out换成curl又报这个错:couldn't connect ...

  3. python + requests发起请求,接口返回400,报错“Unexpected character encountered while parsing value: G. Path”

    完整报错信息如下: {'errors': {'': ["Unexpected character encountered while parsing value: G. Path '', l ...

  4. 使用main方法调用http请求本地服务器的某个servlet报错问题

    java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:8081/test/myS ...

  5. react之异步请求数据,render先行渲染报错,未拿到数据

    import React from 'react' import {connect} from 'react-redux' import { Redirect} from 'react-router- ...

  6. Restful风格,PUT修改功能请求,表单中存在文件报错-HTTP Status 405 - Request method 'POST' not supported

    解决方案配置如下 <!-- 配置文件上传解析器 --> <bean id="multipartResolver" class="org.springfr ...

  7. patch 请求时,关于id的报错问题

    在更新操作时,先显示要更新的数据内容,再修改 在发送patch请求时出现 After applying the update to the document {_id: ObjectId('55be3 ...

  8. 使用layer的弹窗时,出现layer引入成功,触发成功,控制台无报错,但是页面无变化或者仅出现遮罩层的问题的解决思路

    ------------------------------------------20180410补充------------------------------------------------ ...

  9. RabbitMq安装成功后执行命令报错(Error: unable to connect to node 'rabbit@DESKTOP-LPKSION': nodedown)

    我们直接来看解决方案吧.首先打开服务,找到RabbitMq服务. 双击打开后选择登陆选项卡: 点选此账户,输入你计算机的登录名称.点击浏览: 在这里输入你的用户名,点检索: 这里的密码输入你电脑开机登 ...

  10. JMeter接口HTTP请求implementation不选java会报错解决方法

    1.若不对c参数和d参数进行URL编码则需要选择implementation为java: 2.若想不设implementation值,则需进行c参数d参数URLEncoding import java ...

随机推荐

  1. c++深拷贝/浅拷贝

    拷贝构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化.其唯一的参数(对象的引用)是不可变的(const类型).此函数经常用在函数调用时用户定义类型的值传递及返 ...

  2. POJ2503:Babelfish

    浅谈\(Trie\):https://www.cnblogs.com/AKMer/p/10444829.html 题目传送门:http://poj.org/problem?id=2503 \(Trie ...

  3. Docker安装ShowDoc

    ShowDoc就是一个非常适合IT团队的在线文档分享工具,它可以加快团队之间沟通的效率. 一.下载showDoc资源 打开 https://github.com/star7th/showdoc 复制其 ...

  4. thinkphp3.2.3版本在windows本地apache环境运行正常,上传到centos服务器apache环境中出现:thinkphp 上传根目录不存在!请尝试手动创建:uploads/

    thinkphp 上传根目录不存在!请尝试手动创建:uploads/  ,是根目录下uploads权限问题,我把uploads权限改成了775,就可以上传图片了.     chmod -R 775 u ...

  5. CentOS部署NetCore - 1. 安装CentOS 7 & 安装 Nginx

    1. 环境: Win7 64bit 2. 准备: VMWare(12.0.0 build-2985596) CentOS 7 Minimal ISO (http://isoredirect.cento ...

  6. kafka 经典教程

    一.基本概念 介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计. 这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语: Kaf ...

  7. Java 打印一个心心

    package Day8_06; public class For { public static void main(String[] args) { System.out.println(&quo ...

  8. Linux上面缺少rz和sz命令

    一.centos系统没有自带rz/sz命令 yum install lrzsz 搞定! 二.对于经常使用Linux系统的人员来说,少不了将本地的文件上传到服务器或者从服务器上下载文件到本地,rz / ...

  9. Java程序中不通过hadoop jar的方式访问hdfs

      一般情况下,我们使用Java访问hadoop distributed file system(hdfs)使用hadoop的相应api,添加以下的pom.xml依赖(这里以hadoop2.2.0版本 ...

  10. Debian 7.0.0 安装教程图解

    Debian7.0.0的安装镜像文件有3个DVD,安装基本系统只用到第一个镜像文件,即DVD1,其它镜像文件是附带的软件包,下面是安装方法   一.说明: Debian7.0.0的安装镜像文件有3个D ...