Javascript Ajax错误504-SQL存储过程保存和返回记录

Javascript Ajax错误504-SQL存储过程保存和返回记录,javascript,sql-server,ajax,web-services,stored-procedures,Javascript,Sql Server,Ajax,Web Services,Stored Procedures,我正在尝试运行一个名为UpdateKey的SQL存储过程,它根据记录ID将名为Key的记录保存到我的数据库(名为MyDB)的Kiosks表中,然后返回它,如下所示: USE [MyDB] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[UpdateKey] @id uniqueidentifier, @key nvarchar(8) AS BEGIN SET NO

我正在尝试运行一个名为UpdateKey的SQL存储过程,它根据记录ID将名为Key的记录保存到我的数据库(名为MyDB)的Kiosks表中,然后返回它,如下所示:

USE [MyDB]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[UpdateKey]
    @id uniqueidentifier,
    @key nvarchar(8)

AS
BEGIN

    SET NOCOUNT ON;

    UPDATE [dbo].[Kiosks]
    SET session = NEWID(), [key] = @key
    WHERE id = @id;
    SELECT @key AS kioskKey

END
我尝试使用Ajax和服务文件调用它,如下所示:

USE [MyDB]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[UpdateKey]
    @id uniqueidentifier,
    @key nvarchar(8)

AS
BEGIN

    SET NOCOUNT ON;

    UPDATE [dbo].[Kiosks]
    SET session = NEWID(), [key] = @key
    WHERE id = @id;
    SELECT @key AS kioskKey

END
Javascript:

function updateKeyOnly(index) {
            $.ajax({
                type: "POST",
                url: "../Services/Common.svc/UpdateKey/" + kioskList[index].id,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    if (response.success == true) {
                        txtNewKeyDisplay.val(response.keyItem.key); //display new key to user
                        $('#tblKiosks').dataTable().fnClearTable();
                        $('#tblKiosks').dataTable().fnDestroy();
                        loadData();
                        $(this).dialog("close");
                    }
                    else {
                        alert("updateKeyOnly error" + JSON.stringify(response));
                    }
                }
            });
        }
服务(用C#表示):

从ICommon.cs:

//To Update Kiosk Key
        [OperationContract]
        [WebInvoke(Method = "POST", UriTemplate = "/UpdateKey/{id}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        OperationResponse updateKey(string id);

目前我的问题是,当我运行Ajax时,它会给出一个错误504-根据Fiddler的说法,接收失败,在我的页面上,单击激活Ajax的按钮,显然不会导致任何事情发生。尽管在那之后检查Kiosks表显示新的密钥被保存到其中,但存储的进程无法将其返回到我的网页。非常感谢您的帮助。

我是个白痴-我在注意到updateKey中OperationResponse的所有实例有多不一致后,将其更改为resetKeyResponse,然后它运行。

我是个白痴-我在注意到updateKey中OperationResponse的所有实例有多不一致后,将其更改为resetKeyResponse,然后它运行