主干.js:保存方法始终返回错误回调
Backbone.js: Save Method Always Return Error Callback
我知道人们可能会感到困惑,为什么我不使用rails,但我使用php感觉更好,所以我选择了它。我基本上是在尝试创建一个非常简单的主干,.js。我已经预定义了urlRoot和url函数。我已经编写了php,只是简单地返回一条消息(使用echo(。
但是无论我做什么,每当我尝试接收响应时,它总是落入错误回调。我确实收到了响应文本作为响应,但是我仍然无法理解为什么会触发错误回调。这是我完整的 html 和后端 php 代码。为什么它总是去错误回调?我还想声明我收到标头
HTTP/1.1 200 OK
HTML(内部也带有骨干.js(;
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.6/underscore-min.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js"></script>
</head>
<body>
<div id='place'>
<input id='clicker' type='button' value='Click Me'/>
</div>
<script type='text/javascript'>
(function($){
Backbone.emulateHTTP=true;
Backbone.emulateJSON=true;
var URL=Backbone.Model.extend({
initialize:function(){
console.log("URL object has been created");
},
defaults:{
url:'not actually defined'
},
urlRoot:'/StupidExample/server.php',
url:function(){
var base=this.urlRoot || (this.collection && this.collection.url) || "/";
if(this.isNew()) return base;
return base+"?id="+encodeURIComponent(this.id);
}
});
var URLView=Backbone.View.extend({
initialize:function(){
console.log('URL View has been created');
},
el:('#place'),
events:{
"click #clicker":"alerter"
},
alerter:function(){
console.log("I've been clicked");
var obj=new URL();
obj.save(obj.toJSON,{
success:function(){
console.log("Success")
},
error:function(model,response,xhr){
console.log(model);
console.log(response);
console.log(xhr);
console.log("Error");
}
});
}
});
var urlView=new URLView();
})(jQuery);
</script>
</body>
</html>
.PHP;
<?php
echo "I've received something";
?>
您必须在HTTP 200
响应中返回有效的 JSON 对象。Backbone 会在echo
返回值上引发错误,因为它尝试将响应解析为 JSON,但会失败。
正如 Derick 所说,您需要返回 JSON,您可以通过将 php 文件更改为:
<?php print json_encode(array( 'response' => 'success' ));
但是您还需要不要使用绝对路径作为您的 URL,因为不允许跨域使用 AJAX,因此它必须是相对的。
相关文章:
- CKFinder 3为所选文件返回错误的URL
- WebView返回错误的window.innerHeight
- 使用ajax上传的文件返回错误,但使用c#在asp.net的服务器端正常提交的文件
- DreamFactory REST API POST休息/用户/会话请求总是在IE9中返回错误
- sqlite查询返回错误-can'我不知道为什么
- Javascript返回错误的Date值(NodeJS)
- javascript getDate getMonth返回错误的月份
- 函数返回错误'令牌{'
- 为什么我在Cloud9中的http请求总是返回错误
- 当jQuery返回错误时,如何在jQuery中重新发送ajax请求
- ontouchend-ios返回错误的坐标
- node.js mongojs findOne回调返回错误为null
- jQuery Ajax+经典ASP返回错误'意外的输入结束'
- 如果URL's链接返回错误
- 时刻.js时区值返回错误的时间戳
- 简单的jquery不起作用,并返回错误
- 在回调返回错误中带有点的 JSONP
- 在页面发布到服务器并返回错误后保留 javascript 更改
- web2py服务器返回错误,但已提交查询
- Javascript错误-左移位返回错误的输出