gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 06:04:23 24 4
gpt4 key购买 nike

我正在尝试运行一个名为 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 和服务文件来调用它,如下所示:

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# 语言):

OperationResponse ICommon.updateKey(string id)
{
string newKey = generateKey();
string result;
Guid newID;

if (Guid.TryParse(id, out newID))
{
try
{
result = myDB.UpdateKey(newID, newKey).FirstOrDefault();
//return new OperationResponse(request.key);
}
catch (Exception ex)
{
if (isDebug() == true)
{
return new OperationResponse(ex.Message);
}
else
{
return new OperationResponse("Error: Database inaccessible.");
}
}

if (result != null)
{
//return new OperationResponse();
resetKeyResponse response = new resetKeyResponse();
response.keyItem = new resetKeyItem();

response.keyItem.key = result.ToString();

return response;
}
else
{
return new OperationResponse("Error: Key cannot be updated or retrieved.");
}
}

else
{
return new OperationResponse("Error: Invalid ID.");
}

}

来自 ICommon.cs:

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

目前我的问题是,当我运行 Ajax 时,它会根据 Fiddler 给出错误 504 - 接收失败,并且在我的页面本身上单击激活 Ajax 的按钮显然不会发生任何情况。尽管如此,之后检查 Kiosks 表显示新 key 毕竟已保存到其中,只是存储过程无法将其返回到我的网页。如有任何帮助,我们将不胜感激。

最佳答案

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

关于javascript - Ajax 错误 504 - SQL 存储过程保存和返回记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37022098/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com