我想簡單地寫一些數據到我的網頁作爲回調的結果。一切工作到需要輸出回調結果的地步。服務器結果到網頁
客戶端:
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 obj。
目前,json obj被寫入頁面的唯一方法是如果我在沒有回調的情況下調用它(只是在頁面加載時調用它)。另外,在螢火蟲中,整個網頁來源看起來都是回傳的結果。我在發佈的結果中看到了我的json結果,但它也包含整個頁面的HTML。
此外,我似乎無法得到結果張貼到整個頁面的頁面。實際上,我可以通過簡單地取消註釋客戶端代碼中的那一點來將結果發佈到頁面,但它發佈了我的網站的副本,而不是我認爲我創建的實際結果...
我在想什麼?你如何在C#代碼中明確聲明返回到JS回調的結果是'結果'?
我試圖實現物品的例子,但processCallback我的新的公共方法不會被調用上回調。我懷疑這是關於如何'隱藏'我的課程是從頁面的代碼隱藏文件,因此url.com/processCallback DNE呈現頁面。是這種情況還是我做了其他不正確的事情? – yoyo