サーバーからxmlドキュメントを取得する必要があり、クライアントはそれに署名してサーバーに送り返します。
サーバー側には、ドキュメントを保存する Web メソッドがあります。
[WebMethod]
public static void SaveSignedDocument(string SignedData)
{
SignedCms signedCms = new SignedCms();
....
}
次に、サーバーからドキュメントを取得し、成功した後、クライアントに署名させて送り返します。Javascript はこちら
// get xml to sign
$.ajax({
type: "POST",
url: "Default.aspx/GetXMLReceipt",
data: "{'ITN': " + ITN + " }",
contentType: "application/json; charset=utf-8",
dataType: "xml",
success: function (xml) {
// xml file was got
var xmlString = xmlToString(xmlData);
// Sign data
var SignedData = SignData(xmlString);
// Send it to server
$.ajax({
url: 'Default.aspx/SaveSignedDocument',
data: "{ 'SignedData': '" + SignedData + "' }",
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data){
alert('Document was successfully sent!');
}
error: function (data, status, jqXHR) {
alert('Send signed data failed - ' + jqXHR);
}
});
},
error: function (data, status, jqXHR) {
alert('Get data failed - ' + jqXHR);
}
});
問題は、2 回目のリクエストでアラートが発生しないことです。リクエストを同期に変更すると、すべて問題ありませんが、上記のように機能しないのはなぜですか? サーバーは何も受信せず、ネットワーク トラフィックを見ると、リクエストが中断されていることがわかります。なんで?