在angular 1.4版本的项目中,程序一直运行正常,突然有一天,在提交表单时,提示“HTTP 405”错误——“Method Not Allowed”。

从字面上的意思理解,很显然是提交方法的类型错误,要么是以GET方式向POST接口提交数据,要么是POST方式项GET接口提交数据,但反反复复检查了后端接口与提交方式,都是POST,完全没有问题。

仔细检查前端代码,发现编写方式如下:

$http({method : 'POST',url : '/test',params : {cycle : key,emp_id : user.id}}).success(function (resp) {//  处理逻辑});

这样的编程方式有两个问题:
1. 提交的参数暴露在外;
2. 默认提交的Header参数“content-type”为“application/json”;

但经过反复的实验,请参见《浏览器查询参数与表单数据的优先级》,第一个问题不会导致405错误,所以很容易确定问题所在,解决办法是明确指定“content-type”,如下:

$http({method : 'POST',url : '/test',params : {cycle : key,emp_id : user.id},//  新增content-type头部属性heads : {'content-type' : 'application/x-www-form-urlencoded'}}).success(function (resp) {//  处理逻辑});

如果要解决第一个问题,那么只需要引入$httpParamSerializer服务即可,如下:

$http({method : 'POST',url : '/test',//  以表单方式提交,将Object转换为form参数方式data : $httpParamSerializer({cycle : key,emp_id : user.id}),//  新增content-type头部属性heads : {'content-type' : 'application/x-www-form-urlencoded'}}).success(function (resp) {//  处理逻辑});

结论

在发生HTTP 405错误,不妨首先检查下请求头部的“content-type”信息。

一则“HTTP 405 Method Not Allowed”的解决办法相关推荐

  1. 关于HTTP请求出现405状态码 Method not allowed的解决办法

    如图所示: httppost请求目标网站会出现405 状态码,是因为 Apache.IIS.Nginx等绝大多数web服务器,都不允许静态文件响应POST请求. 所以将post请求改为get请求即可.

  2. php 405跳转,php采用curl访问域名返回405 method not allowed提示的解决方法

    /** * http测试 * 注:PHP版本5.2以上才支持CURL_IPRESOLVE_V4 * @param $url 网站域名 * @param $type 网站访问协议 * @param $i ...

  3. 解决“HTTP/1.1 405 Method not allowed”问题

    Apache.IIS.Nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回"HTTP/1.1 405 Method not allowed"错误. 即,将 ...

  4. 使用第三方SDK(如微信、qq、快看、头条等),调用接口405 Method Not Allowed

    使用第三方SDK(如微信.qq.快看.头条等),调用接口405 Method Not Allowed 错误描述:postman请求正常,但客户端调用后接口没有反应,但返回了405错误. 解决方法:第三 ...

  5. SVN 服务器发送了意外的返回值(405 Method Not Allowed),在响应 “MKCOL” 的请求

    服务器发送了意外的返回值(405 Method Not Allowed),在响应 "MKCOL" 的请求 服务器发送了意外的返回值(405 Method Not Allowed), ...

  6. 使用Jersey跨服务器上传图片 报405 Method Not Allowed错误

    springMVC跨服务器上传 报错: HTTP Status 500 – Internal Server ErrorType 异常报告 消息 Request processing failed; n ...

  7. 405 Method Not Allowed

    当jquery easyui的datagrid插件使用.json文件为数据源,通过非http协议访问[就是直接拖进浏览器查看效果],能正常加载.json文件并且生成datagrid数据源.但是通过ht ...

  8. “Remote server returned error: (405) method not allowed.”的解决方案

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:"Remote server returned error: (405) method not allowed." ...

  9. php 405,php Restler 405 Method Not Allowed 问题解决啦,restlerallowed_PHP教程

    php Restler 405 Method Not Allowed 问题解决啦,restlerallowed 在学习Restler 3的时候,在看到 Example的CURD中,用Firefox的R ...

  10. mysql405错误_mysql - 在框架内php调用某个方法, nginx 报 405错误 Status Code:405 Method Not Allowed...

    在框架内方法某个方法 nginx 报 405错误 Status Code:405 Method Not Allowed Remote Address:102.224.214.168:80 Reques ...

最新文章

  1. 双智机器人 珠海_美的集团:“双智”战略加速推行,加强发展机器人业务
  2. java过滤4字节_乐字节Java8核心特性实战之四:方法引用
  3. Junit 内部解密之一: Test + TestCase + TestSuite
  4. JAVA常见算法题(三十三)---求子串在字符串中出现的次数
  5. 操作系统--设备管理
  6. Linux常用命令、权限管理和开发工具详细介绍
  7. 再论sklearn分类器
  8. 《产品经理面试攻略》PART 4:笔试与面试
  9. hexo+next主题优化之加入网易云音乐、网易云跟帖、炫酷动态背景
  10. Verilog学习笔记(7)Modelsim仿真_三角波发生器
  11. [TravelNotes] CTSC 2017 APIO 2017 THUPC 2017 游记
  12. jquery Chosen使用
  13. this.$nextTick() 学(cai)习(keng)
  14. 一文带你了解ARM的发展历程
  15. idead导入maven多模块
  16. java 绘图板_非常值得学习的java 绘图板源代码
  17. 【OfferX】常见题目
  18. 仿真1 - takeoff_land
  19. mysql 初始化修改密码问题
  20. ble理论(14) ble 扫描详解

热门文章

  1. ubuntu Nvidia dkms 驱动恢复
  2. PHP经典实用案例1000个
  3. Axure 软件自带的图标元件Icons无法显示的问题解决方法
  4. 用php表单写出梯形的面积,梯形面积
  5. 计算机房电磁辐射防护,环境电磁辐射监测仪器要求和标准监测方法
  6. “我的一剂良药”之开源指北
  7. 怎么把解压的文件在HTML打开,压缩文件怎么解压打开?
  8. #读源码+论文# 三维点云分割Deep Learning Based Semantic Labelling of 3D Point Cloud in Visual SLAM
  9. windows 添加开机启动项
  10. 技术图文:如何利用 C#+Echarts 绘制 Smoothed Line Chart?