Я пытаюсь создать изображение диаграммы, используя вызов AJAX для Webservice. Я могу построить диаграмму и преобразовать ее в изображение, но по какой-то причине я не могу вернуть изображение к моему вызову AJAX.ajax image from asp.net webservice
Метод веб-службы asp.net, который выглядит так.
[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);
}
})
}
По какой-то причине, изображение возвращается всегда пуст. Может ли кто-нибудь направить меня в правильном направлении. Спасибо за помощь.
установить dataType как 'image/png' в jQuery ajax call. А также сделайте его типом запроса GEt, а не POST. – Sunil
Данные, которые вы отправляете, являются бинарным форматом полного изображения, вы поместите его на src img, который запрашивает имя файла, или вставляя изображение base64 – Aristos