曾尝试过Ajax的保存和创建XML对象进行保存,结果都失败了,忘哪位大牛有好的方法,谢谢!
以下是要求:
方法选择:POST
服务接口:URL
xml字符串不也是字符串嘛,就是和平常是ajax一样啊
xml对象要转为字符串后再post,并且用encodeURIComponent编码下
var s=xmldom.xml?xmldom.xml: new XMLSerializer().serializeToString(xmldom,"text/xml")//将xmldom对象序列化为对应的xml字符串
ajaxobj.send('xml='+encodeURIComponent(s))//ajax发送xml字符串,服务器用Request.Form["xml"]之类的接收,和普通表单一样
用Ajax进行操作,会出现XMLHttpRequest cannot load http://192.168.0.77:17102/EVCENG/ICEvent.No 'Access-Control-Allow-Origin' header is
present on the requested resource.Origin错误。
单独新建用以下这个方法可以把XML数据保存到数据库中,但是当把这个方法运用到表单页面时候,也会报跟Ajax同样的错误
<!DOCTYPE html>
<script type="text/javascript">
$(document).ready(function () {
$('#btnSave').click(function () {
var xmlHttp = createXMLHttp();
if (xmlHttp == null) {
alert("不支持ajax");
return;
} else {
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
alert("请求完成");
}
}
var xmlBody = createXMLContent();
var url = 'http://192.168.0.88:17102/EVCENG/ICEvent';//接口
xmlHttp.open('post', url, true);
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
alert(xmlBody);
xmlHttp.send(xmlBody);
}
});
})
function createXMLContent() {
var xmlContent = '<Data><ICEvent Title="事件" EventDesc="描述" EventClass="风险" EventName="年度安排不一致" InvObj="划纲要编制" BusAction="五年规划纲要编制" RiskLevel="重大" HappenTime="2016-06-14 13:00:00" FoundTime="2016-06-15 12:00:00" HappenUnit="办公厅" ResponsibleUser="zhangchao" SourceSys="00001" LeadUnit="财政部" Response="应对措施"/></Data>';
return xmlContent;
}
function createXMLHttp() {
var httpRequest;
try {
httpRequest = new XMLHttpRequest();
} catch (e) {
try {
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
return null;
}
}
}
return httpRequest;
}
</script>