为什么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. shell监控网卡状态,故障时自动重启网卡

      今天朋友找我写个监控网卡状态的脚本,要求在系统网卡挂了可以自己启动起来,这个要求是不是很bt,我考虑了半天,简单的写了个shell脚本来监控,实现原理是使用ping来测试网络连通性,如果不通就重启 ...

  2. Eclipse编译问题

    问题现象:Maven编译ok,Eclipse始终存在编译错误,点了工程的刷新,没用,点了Eclipse上面的菜单Project -> Clean,也没用.后来看了下工作空间项目目录,发现.cla ...

  3. Android adb push 和 adb pull

    将电脑 D 盘 libreference-ril.so 文件拷贝到安卓设备的 /system/lib 目录下 $ adb remount $ adb root $ adb push D:\libref ...

  4. string源码实现分析

    最近写hashtable的实现的时候用模板类的思想,在普通int,long,double类型的时候测试时没问题的,当用到string的时候,一直有问题. 实现的equal函数是比较粗暴的使用两者所有对 ...

  5. 许多人问:FPGA是什么?

    菇凉提问: 做FPGA开发多年,每次菇凉问我,什么是FPGA,我,我,我,不知道如何说起,难以回答. FPGA是一种器件.其英文名 feild programable gate array . 通俗来 ...

  6. Java 对象的创建和使用

    1.创建对象 类名 对象名 = new 类名(): Telphone phone = new Telphone; 2.使用对象 引用对象的属性:对象名 . 属性 phone.screen = 5; / ...

  7. databaseDesgin-temple

    ylbtech-dbs:ylbtech-storebook- A, 返回顶部 1, 2, B,返回顶部 1, 2, C,返回顶部 作者:ylbtech出处:http://storebook.cnblo ...

  8. hsqldb简单使用总结

      hsqldb数据库是一款纯Java实现的开源免费数据库,相对其他数据库来说,体积非常小,使用方便,非常利于在测试环境中使用,无需复杂的数据库配置.   hsqldb数据库引擎有几种服务器模式:Se ...

  9. java实现时钟

    package com.js.ai.modules.pointwall.testxfz; import java.awt.Color; import java.awt.Dimension; impor ...

  10. 解析 Ceph: FileJournal 的作用

      很多的用户在提到 Ceph 性能的时候都会提到“写放大”这点,实际上就是 FileJournal 在起作用.只要使用默认的 FileStore,所有数据包括 metadata 都会在 FileJo ...