1
我想建立一個圖表使用AJAX調用Web服務。我能夠構建圖表並將其轉換爲圖像,但出於某種原因,我無法將圖像恢復到我的AJAX調用。從asp.net ajax圖像webservice
看起來像這樣的asp.net web服務方法。
[WebMethod(EnableSession = true)]
public void getCandles(string Symbol)
{
Chart chrt = new Chart();
stockQuotes.bldChart(ref chrt); //// returns chart of candlesticks
bytes[] chartBytes;
using (var chartimage = new MemoryStream()) //// change chart to bytes
{
try
{
chrt.SaveImage(chartimage, ChartImageFormat.Png);
chartBytes = chartimage.GetBuffer();
}catch
{
return (null);
}
}
/// Transform to memory stream and finally to image
MemoryStream ms = new MemoryStream(chartImage);
Image img = Image.FromStream(ms)
/// Build respoonse
Context.Response.Clear();
Context.Response.ContentType = "image/png";
index._Stocks[Symbol].ChartImage.Save(Context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Png);
}
這種方法是通過AJAX調用看起來如下調用:
function UpdatePriceChart()
{
var selectedSymbol = $("#ddlSymbols").val();
$.ajax({
url: "/WS/wsCandles.asmx/getCandles",
data: { "Symbol": $("#ddlSymbols").val() },
method: "post",
success: function (data) {
$('#chrtPrice').attr('src', data);
},
error: function (err) {
alert(err);
}
})
}
出於某種原因,返回的圖像始終是空的。任何人都可以把我引向正確的方向嗎?感謝您的幫助。
在jQuery ajax調用中將dataType設置爲'image/png'。並且使其成爲GEt請求類型而不是POST。 – Sunil
您發送的數據是完整的圖像二進制格式,您將其放在要求輸入文件名的img的src中,或者嵌入base64圖像 – Aristos