【发布时间】:2010-04-20 07:50:27
【问题描述】:
编辑:也许我让这个问题比它应该的更复杂。我的问题是:如何从 JS 对服务器进行 API 调用。
我必须创建一个非常简单的客户端,它对我们的服务器进行 GET 和 POST 调用并解析返回的 XML。我正在用 JavaScript 写这个,问题是我不知道如何用 JS 编程(今天早上才开始研究这个)!
作为初始测试,我正在尝试 ping 到 Twitter API,这是当用户输入 URL http://api.twitter.com/1/users/lookup.xml 并点击提交按钮时调用的函数:
function doRequest() {
var req_url, req_type, body;
req_url = document.getElementById('server_url').value;
req_type = document.getElementById('request_type').value;
alert("Connecting to url: " + req_url + " with HTTP method: " + req_type);
req = new XMLHttpRequest();
req.open(req_type, req_url, false, "username", "passwd");// synchronous conn
req.onreadystatechange=function() {
if (req.readyState == 4) {
alert(req.status);
}
}
req.send(null);
}
当我在 FF 上运行它时,我得到一个
访问受限 URI 被拒绝”代码:“1012
Firebug 上的错误。我用谷歌搜索的东西表明这是一个特定于 FF 的问题,所以我切换到 Chrome。在那里,第二个警报出现了,但显示 0 作为 HTTP 状态代码,我觉得这很奇怪。
谁能发现问题所在?人们说这些东西在 JQuery 中更容易使用,但是现在在 JS 语法之上学习 那个 有点太多了。
【问题讨论】:
-
请求另一个域的唯一方法是使用 JOSNP:en.wikipedia.org/wiki/JSON#JSONP
-
不能跨域文件请求,但是可以跨域数据请求ibm.com/developerworks/library/wa-aj-jsonp1
-
顺便说一句,你有没有看过 jQuery 为你抽象了多少? api.jquery.com/jQuery.getJSON
-
IBM 教程很棒,谢谢!
标签: javascript rest xmlhttprequest