在cakephp中,我的jquery $ .ajax()调用在明确告知这样做时没有从另一个控制器调用一个动作

时间:2012-05-09 01:18:22

标签: jquery ajax cakephp

在尝试将此工作三天后,我现在将其发布到stackoverflow上。

我的cakephp应用程序中有一个消息控制器和一个控制器。我无法弄清楚为什么$ .ajax()会从消息控制器中调用正确的操作,但似乎甚至没有尝试转到ajax调用指定的那个。

这将有效并且实际上会在我的消息控制器中调用我的添加操作:

    $('#add_message').click( function () {
        $.ajax({
            url: "/messages/add",
            type: "POST",
            dataType: "html",
            data: {
                text: $('#message_text').val(),
                group_id: $('#group_id').val()                  
            },
            success: function(data, textStatus, jqXHR) {
                $('#message_list').prepend(
                        $(jqXHR.responseText).hide().fadeIn('slow')
                );
                $('#message_text').val("");

            }   
        }); 

下面的代码甚至没有按照ajax调用指定的正确URL('/ links / add'对应于链接控制器的添加操作),而是使用呈现当前视图的url(在这种情况下) /消息/索引)。当提交用户数据时,会显示一个jqueryui对话框,提示“成功”,以便触发该功能。

我使用chrome开发人员工具来检查它从不尝试调用url / links / add的标头。

$( "#dialog-add_group_link" ).dialog({
            autoOpen: false,
            height: 300,
            width: 350,
            modal: true,
            buttons: {
                "Add Link": function() {
                    $.ajax({
                        type: "POST",
                        Url: "/links/add/",
                        data: {
                            tags: $('#link_tags').val(),
                            text: $('#text').val(),
                            href: $('#href').val(),
                            group_id: $('#group_id').val()
                        },  
                        success: function() {
                            alert('success');
                        }
                    });
                    $( this ).dialog('close');
                },
                Cancel: function() {
                    $( this ).dialog( "close" );
                }
            },
            close: function() {

            }
        });

我是否遗漏了一些告诉它使用其他网址的内容?我不确定为什么这不会调用/ links / add操作,我尝试将链接作为绝对链接,这样就不是问题了。

1 个答案:

答案 0 :(得分:2)

url字段必须为小写