加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Backbone.js:保存方法始终返回错误回调

发布时间:2020-12-13 22:03:43 所属栏目:PHP教程 来源:网络整理
导读:我知道人们可能会真的很困惑为什么我不使用rails但我觉得使用php更好,所以我选择了它.我基本上试图创建一个真正的simplebackbone.js.我已经预定了urlRoot和url函数.我编写了 PHP只是简单地给我一个消息(使用echo). 但无论我做什么,每当我尝试接收响应时,它总
我知道人们可能会真的很困惑为什么我不使用rails但我觉得使用php更好,所以我选择了它.我基本上试图创建一个真正的simplebackbone.js.我已经预定了urlRoot和url函数.我编写了 PHP只是简单地给我一个消息(使用echo).

但无论我做什么,每当我尝试接收响应时,它总是落入错误回调.我确实得到了响应的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";
?>

解决方法

您必须使用HTTP 200响应返回有效的JSON对象. Backbone会在echo返回值上抛出一个错误,因为它试图将响应解析为JSON,但失败了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读