我正在尝试创建一个RESTful Web服务,并且已经停止实现PUT请求.我尝试过但未能在本网站上关注其他答案以及Mozilla的各种文章.

该请求是从域wwwtest.dev-box生成的,它将转到test.dev-box(基本上是一个调用后端应用程序的前端应用程序).以下是我从Live HTTP标头中捕获的标头:

http://test.dev-box/resource/v1/data/user/1

OPTIONS /resource/v1/data/user/1 HTTP/1.1

Host: test.dev-box

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Origin: http://wwwtest.dev-box

Access-Control-Request-Method: PUT

Connection: keep-alive

HTTP/1.1 405 Method Not Allowed

Date: Wed, 16 Oct 2013 16:15:58 GMT

Server: Apache/2.2.15 (Red Hat)

x-powered-by: PHP/5.3.27

Access-Control-Allow-Origin: http://wwwtest.dev-box

Access-Control-Allow-Methods: POST, GET, PUT, OPTIONS

Access-Control-Max-Age: 1728000

Content-Length: 0

Allow: PUT

Cache-Control: no-cache

Connection: close

Content-Type: text/html; charset=UTF-8

我正在使用一个框架,所以一切都被路由到web.php,它在页面顶部包含以下代码(取自this MDN article):

if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {

header('Access-Control-Allow-Origin: http://wwwtest.dev-box');

header('Access-Control-Allow-Methods: POST, GET, PUT, OPTIONS');

header('Access-Control-Max-Age: 1728000');

header("Content-Length: 0");

header("Content-Type: text/plain");

} else {

header("HTTP/1.1 403 Access Forbidden");

header("Content-Type: text/plain");

}

在我的代码发出PUT请求之前,它首先发送CORS预检OPTIONS请求(从上面的捕获中可以看到).应该将必要的标题附加到响应并告诉请求者允许PUT.不幸的是,正如您从上面的响应标头中可以看到的那样,即使PUT在响应access-control-allow-methods中,它仍然返回405 Method Not Allowed.

这是我正在使用的框架的.htaccess文件(Silex):

Options -MultiViews

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^ web.php [QSA,L]

php 405跳转,php – 返回HTTP 405的CORS预检请求相关推荐

  1. ajax 如何禁止 预检请求,如何跳过“选项”预检请求?

    我开发了一个PhoneGap应用程序,现在将其转换为移动网站.除了一处小故障,一切都可以顺利进行.我通过POST请求使用了某个第三方API,该API在该应用中可以正常运行,但在移动网站版本中却无法运行 ...

  2. 浏览器预检请求返回400 has been blocked by CORS policy: Response to preflight request doesn’t pass access cont

    这个问题也是很过分头一次遇到,原因是谷歌浏览器在有跨域(CORS)请求时,会先发送一个preflight(预检)请求,之后才会发送fetch请求. CORS:跨源资源共享 (CORS)(或通俗地译为跨 ...

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

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

  4. 异常解决之——无法在Web服务器上启动调试。远程服务器返回错误:(405)

    最近调试webapi出现错误:异常解决之--无法在Web服务器上启动调试.远程服务器返回错误:(405) 英文异常:Unable to start debugging on the web serve ...

  5. http 返回码 405 解决方案之一

    今天做网络请求数据的时候遇到返回码405,当时就傻了~~           故事是这样的-- 我用post请求访问一个url,服务端数据是一个json的txt文件,理论上直接访问,返回json,然后 ...

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

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

  7. vue跳转页面之后返回_vue页面跳转后返回原页面初始位置方法

    vue页面跳转到新页面之后,再由新页面返回到原页面时候若想返回调出原页面的初始位置,怎么来解决这个问题呢?首先我们应该在跳出页面时候记录下跳出的scrollY,返回原页面的时候在设置返回位置为记录下的 ...

  8. Qt实现页面跳转与返回上一级页面(Qt+VS2019)

    Qt实现页面跳转与返回上一级(Qt+VS2019) 页面跳转 返回上一级 页面跳转 问题描述:主界面yangc.ui;需要在主界面点击按钮后进入相应子界面,在子界面点击"返回"按钮 ...

  9. html页面跳转返回不要刷新,javascript跳转与返回和刷新页面的实例代码

    javascript中window.open()与window.location.href的区别 window.open('index.html') 表示新增一个窗口打开 index.html 这个页 ...

最新文章

  1. php改密后joomla无法登陆,恢复丢失的Joomla密码的最常用方法
  2. 编程之美-连连看游戏设计方法整理
  3. 汽车故障检测软件_汽车没故障,定期保养,为啥尾气检测通不过?老司机说出关键...
  4. 【思维题 状压dp】APC001F - XOR Tree
  5. linux nfs 权限设置,Linux NFS server 配置
  6. 弄懂CNN,然后提升准确率4.21-4.27
  7. 你的pyc文件,泄露了你的秘密!
  8. 独家!三代Ryzen国行价格来了:12核3999
  9. 苹果手机自带表格软件_解决手机系统自带软件无法卸载问题
  10. 精通 Oracle+Python,第 4 部分:事务和大型对象
  11. WPF之DatePicker使其只能选择日期,不能输入日期
  12. Python3的迭代器
  13. jxls模板hashmap_使用Java + jxls基于模板导出excel
  14. 趣键盘霸榜App Store七天,下一个趣头条诞生?
  15. 在任务栏中添加控件 如360小助手、QQ桌面小助手
  16. matlab将txt转成dat,将matlab中数据保存为txt或dat格式
  17. python seek_Python 文件 seek() 方法
  18. t4240 uboot下网络调试(88e1111)
  19. phpstudy mysql建表_MySQL_总结MySQL建表、查询优化的一些实用小技巧,MySQL建表阶段是非常重要的一 - phpStudy...
  20. codeforce B. Cutting Carrot

热门文章

  1. mysql 并发 锁表_MySQL中的锁(表锁、行锁) 并发控制锁
  2. js 和java有关系吗,javascript和JAVA有什么关系
  3. centos安装盘ntfs_在CentOS下挂载NTFS格式U盘的方法
  4. android动画详解
  5. node php聊天室,最简单的Nodejs聊天室示例
  6. [JSON].valueOf( keyPath )
  7. 使用xtrabackup(innobackupex)实现MySQL的热备
  8. NHibernate实例化类部分属性
  9. 【百度地图API】发布静态图API啦!只需一个网址,即可展示定制百度地图!
  10. js导航条 二级滑动 模仿块级作用域