【发布时间】:2010-10-27 00:35:44
【问题描述】:
我快被这个弄疯了……
我使用 C# 制作了一个 RESTful.NET 网络服务,并作为独立服务运行。当我创建一个 XMLHttpRequest 来检索 JSON 数据时,除了 IE,所有浏览器都失败了,因为 XMLHttpRequest 实例的状态标志始终为 0 - 它应该是 200,这就是 IE 发生的情况。
我已经读到 0 是不在网络服务器上的静态 html 页面的正确值。所以,我安装了 Apache 并将页面放在那里,但结果是一样的(我可能错误地解释了这个建议......)
我运行了 Fiddler,并且对于任何浏览器都始终正确检索请求!
这是我正在使用的 JavaScript 代码:
<script type="text/javascript">
var serviceURI = 'http://localhost:8889/WebService/client/25';
var xmlHttp = new XMLHttpRequest();
function clientHandler()
{
if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
{
var json = xmlHttp.responseText;
var client_id = document.getElementById('clientid');
var client_name = document.getElementById('clientname');
var client_address = document.getElementById('clientaddress');
var client_phone = document.getElementById('clientphone');
var client = eval('(' + xmlHttp.responseText + ')');
client_id.value = client.id;
client_name.value = client.name;
client_address.value = client.address;
client_phone.value = client.phoneNumber;
}
else
alert("Error:\nxmlHttp.responseText = " + xmlHttp.responseText + "\nstatus = " + xmlHttp.status);
}
function sendRequest()
{
if (xmlHttp)
{
xmlHttp.onreadystatechange = clientHandler;
xmlHttp.open('GET', serviceURI, true);
xmlHttp.setRequestHeader("Content-Type", "application/json; charset=utf-8");
xmlHttp.send(null);
}
else
alert('xmlHttp not defined!');
}
</script>
如果有人能向我解释发生了什么,我会非常高兴;我还没有找到任何令人满意的解释......
另外,使用 jQuery 之类的框架来完成这项工作会更好吗?
谢谢大家!
PS:我已经咨询过 Jon Flanders RESTful.NET,但它对解决这个问题没有多大帮助... :(
编辑:我将这个问题的答案移到下面的评论中!
【问题讨论】:
-
谷歌交易!很高兴你找到了答案。
标签: c# javascript ajax json rest