Ajax请求在其他请求(.NET+jQuery)的成功结果之后
Ajax request after success result of other reqjest (.NET + jQuery)
我需要从服务器获取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);
}
});
问题是,没有一个在第二次请求时发出警报。如果我将请求更改为同步,一切都可以,但为什么它不能像上面写的那样工作?服务器什么也没收到,如果我们查看网络流量,我会发现请求被中断了。为什么?
正确编码数据,不要使用任何字符串串联。以下是正确的方法:
data: JSON.stringify({ ITN: ITN }),
在您的第二个AJAX请求上:
data: JSON.stringify({ SignedData: SignedData })
JSON.stringify
方法将通过正确编码参数来确保向服务器发送有效的JSON。
相关文章:
- ajax请求成功,但可以'我看不到我的数据
- 在请求成功时使用javascript选择一个选项
- 为什么 Ajax 请求成功,但最终以失败回调告终
- 如何恢复 ajax 中按钮的初始值请求成功
- 如何在 ajax 请求成功后禁用点击事件
- 在对api的$http请求成功后,Angular$q库到链方法
- AJAX请求成功,但返回空数据
- 等待中的两个ajax请求成功函数的执行
- Angularjs$http获取失败,但在邮递员和浏览器中请求成功
- AJAX请求成功,但无法使用任何数据
- CORS选项请求成功,但在Safari中挂起
- 选项请求成功,但仍然得到Access-Control-Allow-Origin错误
- 从Web服务返回一个对象到Ajax请求成功回调函数
- Ajax请求成功,但收到的responseText为空白
- 使用Node.js在http请求成功后记录图像
- ajax请求成功后在jqtree中追加子节点的问题
- 当AJAX请求成功时如何返回值
- 在 Ajax 加载的 php 模块中使用 javascript,即使请求成功,也返回错误值
- Angular:如何在$http请求成功后才返回
- 跨域ajax请求成功事件没有触发