在CFC上使用AJAX时出现501错误

时间:2013-05-08 00:28:56

标签: jquery apache tomcat coldfusion coldfusion-10

我有以下表格:

<!DOCTYPE html>
<head>
</head>

<body>
<div>
    <label>
        <h1>Input 1</h1>
    </label>
    <form>
        <input type="text" name="input_1" class="input">
    </form>
</div>
<!---Javascipt Sources --->
<script src="js/vendor/jquery-1.9.1.min.js"></script>
<script src="js/form.js"></script>
</body>
</html>

使用以下Javascript:

$(document).ready(function(e) {
    $('.input').blur(function() {
        var number = $('.input');
        var data = 'number=' + number.val();

        $.ajax({
            url: "cfc/form.cfc",
            method: "read",
            type: "post",
            data: data,
            success: function(html) {
                if (html == 1) {
                    alert('wyslane');
                }
                else {
                    alert('wrong');
                }
            }
        });
        return false;
    });
});

哪个指向以下CFC:

<cfcomponent>
<cffunction name="Read" access="remote" output="false">
    <cfreturn true>
</cffunction>
</cfcomponent>

我在Chrome控制台上收到以下错误消息:"READ http://127.0.0.1:8500/Google%20Drive/testing/cfc/form.cfc 501 (Method READ is not is not implemented by this servlet for this URI) "

以下是该通话的预览页面:

Apache Tomcat / 7.0.23 - 错误报告

HTTP状态501 - 此servlet未针对此URI实现方法ADDTOSESSION

类型状态报告

消息方法此servlet未针对此URI实现ADDTOSESSION

描述服务器不支持满足此请求所需的功能(此servlet没有为此URI实现方法ADDTOSESSION)。

Apache Tomcat / 7.0.23

使用网址http://127.0.0.1:8500/Google%20Drive/testing/cfc/form.cfc登录RDS后,我可以点击CFC。

有没有我做错的代码,或者内置服务器是否有点时髦?我也在Google Drive文件夹之外尝试了它,直到webroot,但我得到了同样的错误。应授予驱动器本身的所有适用权限(用户,管理员,系统)。

Windows 7 / ColdFusion 10

2 个答案:

答案 0 :(得分:1)

必须将CFC方法名称作为HTTP参数传递(通过formurl)。尝试从您的设置中删除method: "read",并将?method=read添加到您的url参数中,如下所示:

$.ajax({
        url: "cfc/form.cfc?method=read",
        type: "post",
        data: data,
        success: function(html) {
            if (html == 1) {
                alert('wyslane');
            }
            else {
                alert('wrong');
            }
        }
 });

答案 1 :(得分:1)

感谢@imthepitts指出我正确的道路。我复制并粘贴了你的代码并得到了500错误。我修改了一下以使其工作:

    $.ajax({
            url: "cfc/form.cfc",
            type: "post",
            data: {
                method: "read",
                input1: 'hi'},
            success: function(html) {
                if (html == 1) {
                    alert('wyslane');
                }
                else {
                    alert('wrong');
                }
            }
     });

作为一个附带问题,我在哪里可以发现我必须通过FORM或URL传递它?我似乎不断收到有关如何处理AJAX调用的信息,并希望引用一些源代码。谢谢你的帮助。