私は1つの画像を持っていて、jquery ajax呼び出しでその画像をダウンロードするためのダイアログボックスとして保存しようとしていました. 誰かがボタンをクリックすると、クライアント側のコードが実行され、次のコードが実行されます
$("#btnSaveAsImage").click(function () {
if (_TrackNumber == '') {
alert('Track Number is not valid');
return;
}
var fname = _TrackNumber + '.gif';
var DTO = { FileName: fname };
jQuery.ajax({
type: "POST",
url: "UPSLabelFormUK.aspx/SaveAs",
data: JSON.stringify(DTO),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
var retVal = data.d;
alert(retVal);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
return false;
});
このクライアント側のコードは実際にサーバー側の関数を呼び出します。サーバー側の機能は次のようになります
[WebMethod]
public static void SaveAs(string FileName)
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.WriteFile(HttpContext.Current.Server.MapPath(@"~/UPS_New/LabelImages/" + FileName));
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.Close();
}
サーバー側関数の実行が終了すると、jsuery は parse error のようなエラー メッセージを表示します。エラーが発生する理由と、[名前を付けて保存] ダイアログが表示されない理由がわかりません。アイデアがあれば教えてください。ありがとう