服务器结果到网页
本文关键字:网页 结果 服务器 | 更新日期: 2023-09-27 17:50:05
我试图简单地写一些数据到我的网页作为回调的结果。直到需要输出回调结果时,一切都正常运行。
客户端:
function toServer(data) {
var dataPackage = data + "~";
jQuery('form').each(function () {
document.getElementById('payload').value = JSON.stringify({ sendData: dataPackage });
$.ajax({
type: "POST",
async: true,
url: window.location.href.toString(),
data: jQuery(this).serialize(),
success: function (result) {
//this does not work because it just puts an entire source code copy of my site in there instead...
//document.getElementById('searchResults').value = result
console.log("callback compelete");
},
error: function(error) {
console.log("callback Error");
}
});
});
}
服务器端:(在页面加载时)
//holds actions from page
string payload = HttpContext.Current.Request.Form["payload"] ?? String.Empty;
// See if there were hidden requests (callbacks)
if (!String.IsNullOrEmpty(payload))
{
string temp_AggregationId = CurrentMode.Aggregation;
string[] temp_AggregationList = temp_AggregationId.Split(' ');
Perform_Aggregation_Search(temp_AggregationList, true, Tracer);
}
else
{
HttpContext.Current.Session["SearchResultsJSON"] = "";
}
服务器端代码的其余部分正常工作,只是处理传入的解析和执行数据库的搜索,然后将搜索结果解析为JSON对象。
目前,json对象写入页面的唯一方法是,如果我调用它没有回调(只是在页面加载时调用它)。此外,在firebug中,看起来整个页面源都是作为回调的"结果"发回的。我确实看到我的json结果张贴回来的"结果",但它也包含了整个页面的HTML。
此外,我似乎无法得到的结果张贴到网页上,这是重点。实际上,我可以通过在客户端代码中取消注释来获得发布到页面的结果,但它发布了我的网站的副本,而不是我认为我创建的实际结果…
我错过了什么?如何在c#代码中显式地声明返回给JS回调的"结果"?
您将获得整个页面,因为您正在向ASP发出请求。网络页面。实际上,您请求的是与您正在浏览的页面不同的页面。服务器返回的是提交表单时的返回值。
要获取JSON数据,你需要创建一个web方法来处理你的请求。阅读这篇文章,它会对你有所帮助。它向您展示了如何返回简单文本,但您也可以返回JSON。这篇MSDN文章的信息。最后,要确保jQuery将服务器响应解析为JSON,请更改请求并显式指出:
function toServer(data) {
var dataPackage = data + "~";
jQuery('form').each(function () {
document.getElementById('payload').value = JSON.stringify({ sendData: dataPackage });
$.ajax({
type: "POST",
async: true,
url: window.location.href.toString(),
data: jQuery(this).serialize(),
dataType: 'json',
success: function (result) {
//this does not work because it just puts an entire source code copy of my site in there instead...
//document.getElementById('searchResults').value = result
console.log("callback compelete");
},
error: function(error) {
console.log("callback Error");
}
});
});
}