的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

回到顶部