gpt4 book ai didi

codeigniter - 无法使用 Codeigniter、REST、Lighttpd url-rewrite 和 Backbone.js 接收 POST 数据

转载 作者:行者123 更新时间:2023-12-04 08:20:35 25 4
gpt4 key购买 nike

我将 CodeIgniter 与 REST API 和 Backbone.js 结合使用。 Web 服务器是 lighttpd。我还更改了 lighttpd.conf 以重写 URL 以从 url 中删除 index.php,如下所示:-

url.rewrite-once = (
"/(.*)\.(.*)" => "$0",
"/(css|files|img|js|stats)/" => "$0",
"^/([^.]+)$" => "/index.php/$1"
)

来自 js 的调用到达 Codeigniter Put 函数,但 $this->put() 的值为空。请帮助我追踪为什么 PUT 数据的值为空。

注意:当我不重写 URL 时,这工作得很好。这也适用于 Apache 网络服务器。

在调试REST_Controller.php文件时,在函数“protected function _parse_put()”中,发现文件“php://input”的内容也是空的

以下是在进行 PUT 调用时从 Chrome Web 检查器获取的请求 header 和有效负载:-

**Request Headers**
PUT http://10.82.0.160/cav_settings/api/2 HTTP/1.1
Pragma: no-cache
Origin: http://10.82.0.160
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17
Content-Type: application/json
Accept: application/json, text/javascript, */*; q=0.01
Referer: http://10.82.0.160/settings/2
X-Requested-With: XMLHttpRequest
**Request Payload**
{"aggregation":{"enabled":"false","mode":""},"dns":{"auto":"false","servers":["10.0.0.5","10.20.0.20"]},"id":"2","dhcp":"false","ip":"10.82.0.160","netmask":"255.255.255.0","default_gw":"","mtu":"1500"}

最佳答案

你可以使用 Backbone.emulateJSON = true;

这是对你的疑惑最好的回答:)

Backbone.js PUT/DELETE problems with Codeigniter REST server

关于codeigniter - 无法使用 Codeigniter、REST、Lighttpd url-rewrite 和 Backbone.js 接收 POST 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14766819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com