我正在开发一个filemaker项目。在这个项目中,我需要向肥皂服务提出请求。为此,我在Filemaker中使用Web查看器。在Web浏览器中,我发出肥皂请求,然后使用filemaker fmp://协议,我可以将数据从Web查看器发送到我的数据库以供进一步处理。IOS上的xmlhttprequest没有发送请求?
为了使这项工作,我会加载到Web浏览器的HTML页面。 我有以下的本地HTML页面,包含与SOAP服务通信的脚本:
<html>
<head>
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
</head>
<body>
<script language='JavaScript' type='text/JavaScript'>
var xhr = new XMLHttpRequest();
var req = ' --- request comes here ----';
xhr.open('POST', 'https://--- soapservice endpoint ---', true, '***_***_***', '******');
xhr.onload = function (e) {
if (xhr.readyState === 4) {
if (xhr.status === 200 || xhr.status === 0) {
alert ('Onload responsetext: ' + xhr.responseText);
} else {
alert ('Onload statustext: ' + xhr.statusText);
}
}
};
xhr.onerror = function (e) {
alert ('onerror statustext: ' + xhr.statusText + ',status: ' + xhr.status);
};
xhr.setRequestHeader('Content-Type', 'application/xml');
xhr.setRequestHeader('SOAPAction', '');
xhr.send(req);
</script>
</body>
</html>
当我在Safari中打开这个页面,在我的iMac,脚本工作正常,我从服务器获得响应。
在我的Ipad IOS上我没有收到服务器的响应。 xhr.Status = 0,readyState = 4,responseText为空。 如果我在de脚本中放置onreadystatechange函数,它会在每个就绪状态更改(1到4)时发出警报,我只收到就绪状态1和就绪状态4的警报。
触发错误功能,提供警报状态0和空状态文本
因为它不是公共服务器我不能发布实际的网址 用户名中有两个“_”。
为什么这段代码不能在IOS中工作?
我不知道你的问题的答案。恕我直言,你会更好**直接从响应导入**记录,使用XSLT样式表将响应转换为Filemaker的XML语法。 –
使用filemaker Go不可能导入xml文件。我试图让这个数据库在我的Ipad上工作。 – ErikB
啊,对不起,你说得对。如何从URL插入[],这会对你有用吗? –