的index.php不接受JSON由骨干邮政
我一直在试图理解骨干是如何工作的,并与后端代码通信发送,我不能够接受我发送JSON的问题到我的PHP文件。的index.php不接受JSON由骨干邮政
下面是代码: HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href='http://fonts.googleapis.com/css?family=Abel' rel='stylesheet' type='text/css' />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Understanding Backbone</title>
<style type="text/css">
body { padding: 0; margin: 0; background-color: #fff; }
h2 { font-family: Abel, sans-serif; margin: 0; padding: 0 0 5px 0;}
input { background-color: #ddd; border: 0; }
input:active { background-color: #bbb; }
#new-status { margin: 20px; padding: 20px; background-color: #67A9C3; }
#statuses { margin: 20px; padding: 20px; background-color: #92B456; }
</style>
</head>
<body>
<div id="new-status">
<h2>New monolog</h2>
<form>
<textarea id="status" name="status"></textarea>
<br />
<input type="submit" value="Post" />
</form>
</div>
<div id="statuses">
<h2>Monologs</h2>
<ul></ul>
</div>
<script src="js/jquery-min.js"></script>
<script src="js/underscore.js"></script>
<script src="js/backbone.js"></script>
<script src="js/main.js"></script>
</body>
</html>
JS:
var Status = Backbone.Model.extend({ url: 'api/index.php'
});
var Statuses = Backbone.Collection.extend({
model: Status
});
var NewStatusView = Backbone.View.extend({
events: {
"submit form": "addStatus"
},
initialize: function(options) {
this.collection.on("add", this.clearInput, this);
},
addStatus: function(e) {
e.preventDefault();
this.collection.create({ text: this.$('textarea').val() });
},
clearInput: function() {
this.$('textarea').val('');
}
});
var StatusesView = Backbone.View.extend({
initialize: function(options) {
this.collection.on("add", this.appendStatus, this);
},
appendStatus: function(status) {
this.$('ul').append('<li>' + status.escape("text") + '</li>');
}
});
$(document).ready(function() {
var statuses = new Statuses();
new NewStatusView({ el: $('#new-status'), collection: statuses });
new StatusesView({ el: $('#statuses'), collection: statuses });
});
的index.php:
<?php echo(var_dump($_POST));
?>
这是我得到的回应:
array( 0){}
我已经打破我的头了这一点,所以请大家帮忙!
回答:
$raw_data = file_get_contents("php://input"); var_dump($raw_data);
if(!empty($raw_data)){
$data = @json_decode($raw_data, true);
if($data){
var_dump($data);
}
}
回答:
的计算器一些调查研究(真棒社区BTW),我能够发现主干不发直邮寄或获取到的RESTful API,或任何代码隐藏可能后,反而它是一组标题。所以你必须在$ _SERVER全局中寻找并找出正在被请求的东西。您将能够在$ _SERVER [“REQUEST_METHOD”]中找到您的请求,而不是执行开关/案例来决定您对该请求所做的操作。通过发送的数据(在主干的情况下始终是JSON字符串)在HTTP主体中,并使用file_get_contents('php:// input'),并解码JSON,以便PHP可以使用它。
<?php $requestMethod = $_SERVER["REQUEST_METHOD"];
switch ($requestMethod)
{
case 'POST': $data = json_decode(file_get_contents('php://input'), true);
echo $data;
break;
}
?>
@orangewarp,我真的很想了解在没有使用RESTful php框架的情况下发生了什么。
以上是 的index.php不接受JSON由骨干邮政 的全部内容, 来源链接: utcz.com/qa/257697.html