Javascript Ajax错误504-SQL存储过程保存和返回记录
我正在尝试运行一个名为UpdateKey的SQL存储过程,它根据记录ID将名为Key的记录保存到我的数据库(名为MyDB)的Kiosks表中,然后返回它,如下所示: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
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,然后它运行