我正在尝试使用AJAX向Google图书发送查询并在我的网站上显示结果。我正在使用JQuery发送请求并处理响应,如下所示:
var query = [formatted input from a form]; var URL = "http://books.google.com/books/Feeds/volumes?q="+query+"&start-index=1&max-results=5"; $.ajax({ type: "GET",url: URL,dataType: "xml",success: function(data,status){ alert(status); } });
目前,如果接收到响应,我只是让脚本警告“成功”。如果我使用我的脚本将该查询发送到本地页面进行测试,这很好。但是当我按照开发人员API页面上的指示将URL设置为上面列出的Google时,我从未看到警报。根据Firebug的说法,我正在收到一个答复,状态是200,我应该这样做,但是没有达到这个“成功”的路径。有人知道为什么吗
编辑:我应该补充一点,如果我直接跟随URL,到了http://books.google.com等等一些随机的q,它显示Feed XML没有问题,所以查询不是问题。
您不能在标准浏览器安全设置下使用XMLHttpRequest进行跨域请求。一个可能的解决方案是编写本地代理功能(假设您可以创建服务器端代码)将查询转发到外部站点,然后返回响应。
原文链接:https://www.f2er.com/ajax/160291.html编辑:Google还提供了JavaScript API。我会假设他们以这样的方式制作,以避免跨域XHR问题。
http://code.google.com/apis/books/docs/js/devguide.html#execute
编辑:书籍的JavaScript API已弃用。虽然它不再实用,但您可以通过Wayback Machine归档:http://web.archive.org/web/20120414070427/http://code.google.com/apis/books/docs/js/devguide.html#execute查看原始引用的文档