4

当backbone.js 将模型保存到服务器时,它会发送一个PUT 请求。我如何用php处理这些?如何获取与 put 请求一起发送的内容,并将它们存储在数据库中?

4

3 回答 3

8

这是另一个例子:

$values = json_decode(file_get_contents('php://input'), true);

  • 这将产生一个数组(json_decode() 的第二个参数)$values,其中包含接收到的 json 数据的 key => value 对。
于 2011-06-04T11:01:54.023 回答
5

请参阅 php 文档以获取示例http://php.net/manual/en/features.file-upload.put-method.php

来自 php.net:

<?php
/* PUT data comes in on the stdin stream */
$putdata = fopen("php://input", "r");

/* Open a file for writing */
$fp = fopen("myputfile.ext", "w");

/* Read the data 1 KB at a time
   and write to the file */
while ($data = fread($putdata, 1024))
  fwrite($fp, $data);

/* Close the streams */
fclose($fp);
fclose($putdata);
?>

当您想将数据存储到数据库时,您可以将 fwrite 部分排除在外。

于 2011-06-03T10:01:36.493 回答
4
Backbone.emulateHTTP = true;
如果您想使用不支持 Backbones 的默认 REST/HTTP 方法的旧版 Web 服务器,您可以选择打开 Backbone.emulateHTTP。设置此选项将使用 HTTP POST 伪造 PUT 和 DELETE 请求,并在 _method 参数下传递它们。设置此选项还将使用 true 方法设置 X-HTTP-Method-Override 标头。

之后sync在您的模型中实现您自己的功能:http ://documentcloud.github.com/backbone/#Sync

于 2011-06-04T17:44:47.260 回答