我正在对返回部分视图的控制器中的操作进行 ajax 调用。部分视图是将附加的行,或者它将替换项目网格中的现有行(取决于我是添加还是编辑行项目)。在 Google Chrome 的“网络”选项卡中,我得到了正确的 HTML 字符串,例如:
<tr class="" data-id="1c4daceb-2afb-413b-8adc-d20b4d8969e5">
<td><img style="width:100px; height:100px;" src="http://localhost/Project/6b39488b-db2d-495e-957c-ede0eb462292.png" data-id="1c4daceb-2afb-413b-8adc-d20b4d8969e5"/></td>
<td>bvcbvX</td>
<td>6b39488b-db2d-495e-957c-ede0eb462292.png</td>
</tr>
但在我的 Ajax 成功函数中:
function onDataEdited(data, status, xmlhttp) {
alert(data);
}
我去掉了行和标签,如下所示:
<img style="width:100px; height:100px;" src="http://localhost/Project/6b39488b-db2d-495e-957c-ede0eb462292.png" data-id="1c4daceb-2afb-413b-8adc-d20b4d8969e5"/>
bvcbvX
6b39488b-db2d-495e-957c-ede0eb462292.png
所以来自 jquery 的东西会剥离我的标签,只留下内容。
对操作的调用是通过 Ajax 完成的,如下所示:
function MakeAjaxCall() {
$('#myForm').ajaxForm({
iframe: true, ---> here is needed since I am adding a file upload from my form
beforeSubmit: function () {
if (!$('#myForm').valid())
//process validation
return $('#myForm').valid();
},
success: function (data, status, xmlhttp) {
if (xmlhttp.getResponseHeader('ErrorHeader') == null ||
xmlhttp.getResponseHeader('ErrorHeader') == "") {
//process success
}
else {
//process error
}
},
error: function (xhr, textStatus, errorThrown) {
alert(xhr);
}
});
}
谁能告诉我如何在不被剥离和标签的情况下获取我的响应数据?
我正在使用这个 jquery 插件 (malsup.com/jquery/form) 来制作“ajaxified”表单,以便通过 Ajax 提交包含文件的表单。该插件中的“ajaxForm”方法只有“xml”、“json”、“script”和 null(我正在使用)作为数据类型,并且响应中仍然去除了“xml”的标签。如果我设置 'json' 或 'script' 它会引发客户端错误,指定它无法解析响应(当它是 html 时试图将其解析为脚本)。