我有一个使用 ASP.NET 的网站,需要从 CloudKit 检索一些数据。我正在使用 CloudKit JS,从 CloudKit 检索记录并使用 C# 将数据从 JavaScript 发送到服务器。我可以使用 将检索到的记录的 JSON 对象转换为字符串JSON.stringify(record);,但无法使用 AJAX 将其发送到服务器。这是我使用 AJAX 发送数据的代码:
function afterRecordLoaded(record) {
var decodedRecord = JSON.stringify(record);
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "/receive?type=specific&" + "data=" + decodedRecord, true);
xmlhttp.setRequestHeader("Content-Type", "application/json");
xmlhttp.send();
}
afterRecordLoaded(record);
当我进入浏览器开发工具中的控制台时,手动完成时可以正确执行请求,但是当 AJAX 执行时,它会收到 HTTP 错误 400。换句话说,我可以在键入 URL 时执行请求(具有正确的参数)进入地址栏,但是当AJAX使用相同的URL(具有相同的参数)时,它不起作用并返回HTTP错误400。
以下是接收请求的页面的 C# 代码:
var token = antiforgery.GetAndStoreTokens(HttpContext).RequestToken;
var type = Request.Query["type"];
var data = Request.Query["data"];
if (type == "specific")
{
if (data != "")
{
PostProcessor.processPostData(data);
}
else
{
Response.StatusCode = 400;
}
}
在进行简单的 Google 搜索时,我可以看到其他人也遇到了这个问题,为了解决这个问题,他们使用了防伪令牌。我不确定如果需要的话如何实施防伪令牌。如果有人有解决方案来消除 HTTP 错误 400,或者实现防伪令牌来消除错误,那就太好了。抱歉,如果这个问题到处都是,或者非常明显,因为我是 ASP 的初学者。谢谢。
UYOU
BIG阳
相关分类