我知道人們爲什麼我不使用軌可能會得到真正的困惑,但我感覺好多了使用PHP因此我把它撿起。我基本上試圖創建一個非常簡單的backbone.js。我已經預定義了urlRoot和url函數。我編寫的PHP只是簡單地給我回復一條消息(使用echo)。Backbone.js的:保存方法總是返回錯誤回調
但無論我做什麼,只要我嘗試收到迴應,它總是會回到錯誤回調。我得到responseText作爲迴應,但是我仍然不明白爲什麼會觸發錯誤回調。這裏是我的完整html和後端php代碼。爲什麼總是會出現錯誤回調?我還想說明我收到標題
HTTP/1.1 200 OK
HTML(也與Backbone.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";
?>
在我的使用情況下,我的服務器發送一個CSV文件中的一個,我可以繞過這使我能得到成功的回調csv文件。提前致謝。 – Trying
@Try你總是可以恢復到古老的jQuery'ajax'方法。無論如何,這就是Backbone所使用的。 – benjaminz