【发布时间】:2009-10-14 20:26:57
【问题描述】:
我创建了一个在 Mac OS X 上的 Apache Web 服务器上运行的 html/javascript 网站。该网站通过 XmlHttpRequest 使用带有 JSON 的 .NET Web 服务。此 Web 服务在 Windows Vista 机器上运行。
可通过以下网址访问该网站:http://macintosh.companyname.local/~username/Sitename/index.html.
当我使用 Safari 在 Mac 上打开网站时,我没有从 Web 服务返回任何 JSON 数据。
当我使用 URL file://Users/username/Sites/Sitename/index.html 打开网站时,它运行良好。
我的第一个想法是这与 XmlHttpRequest 和它在许多浏览器中的安全限制有关,但我不确定为什么当我通过网络服务器而不是 html 的绝对路径调用站点时它不起作用文件。
这里是我用来调用 Web 服务的代码:
<div id="eigenRisico" class="panel" title="Eigen Risico">
<h2>Eigen Risico Per Polis</h2>
<script type="text/javascript">
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://webserviceurl/GetEigenRisicoVerzekerde", true);
xhr.onreadystatechange = function(){
if (xhr.readyState === 4) {
var result = eval('(' +xhr.responseText+')');
var ihtml="";
var j = 0;
for(i = 0; i < result.d.length/2; i++) {
ihtml=ihtml+"<fieldset><div class='row'><label>Polisnummer:</label><span>"+result.d[j]+"</span></div>";
j++;
ihtml=ihtml+"<div class='row'><label>Resterend Eigen Risico:</label><span>&euro "+result.d[j]+"</span></div></fieldset>";
j++;
}
document.getElementById('eigenRisico').innerHTML = ihtml;
}
};
xhr.setRequestHeader("content-type", "application/json");
var postData = '{"bsn": "999999999"}';
xhr.send(postData);
</script>
</div>
有人知道为什么会这样吗?
【问题讨论】: