我是ASP.NET的新手。我想知道如何从网站获取xml(在这种情况下是Kuler的API),然后使用AJAX发布结果?
所以我想要的是能够对Kuler的API进行查询。该网址类似"http://kuler-api.adobe.com/rss/search.cfm?query="+queryVariable
然后以某种方式将生成的xml发送回JS。
任何指针都会受到赞赏(:
答案 0 :(得分:2)
您需要做的是拥有一个处理程序,它将执行XML请求并使用AJAX将其发送回浏览器。它将充当服务器和客户端之间的中介,您不必担心跨域策略。
这就是我在其中一个网站上所做的事情。我有一个处理程序(让我们称之为proxy.ashx),我从jQuery AJAX请求调用。 proxy.ashx只是对远程URL执行WebClient.DownloadString操作,并将远程响应(XML)发送回客户端。
答案 1 :(得分:1)
我认为Tim说得够多,但我想补充的是你如何做服务器端请求:
XmlDocument doc = new XmlDocument();
HttpWebRequest r = (HttpWebRequest)HttpWebRequest.Create("http://kuler-api.adobe.com/rss/search.cfm?query="+queryVariable);
r.Method = "POST";
using (Stream writeStream = r.GetRequestStream())
{
UTF8Encoding encoding = new UTF8Encoding();
byte[] bytes = encoding.GetBytes(bodyRequest);
writeStream.Write(bytes, 0, bytes.Length);
}
try
{
using (HttpWebResponse response = (HttpWebResponse)r.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader readStream = new StreamReader(responseStream, Encoding.UTF8))
{
doc.Load(readStream);
}
}
}
}
catch (WebException ex)
{
//Handle exception
}
答案 2 :(得分:0)
如果可能的话,我会使用Jquery的ajax库在Javascript中完成所有工作。它使用起来非常简单,您不必担心从服务器到客户端的XML。
答案 3 :(得分:0)
编写一个封装跨域调用的.net webservice(.asmx),然后使用AJAX调用该服务。