Ajax 与 JQuery : 200 ok, 但不是 "success"

标签 ajax jquery google-books

我正在尝试使用 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 URL 时,我从未看到该警报。根据 Firebug 的说法,我收到了响应和状态 200 ok,这是我应该做的,但它没有到达“成功”路径。有谁知道为什么吗?

编辑:我应该补充一点,如果我直接关注 URL,则为 http://books.google.com等等,使用一些随机 q,它会毫无问题地显示提要 XML,因此查询不是问题。

最佳答案

在标准浏览器安全设置下,您无法使用 XMLHttpRequest 发出跨域请求。一种可能的解决方案是编写一个本地代理函数(假设您可以创建服务器端代码),将查询转发到外部站点,然后返回响应。

编辑:看起来 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

关于Ajax 与 JQuery : 200 ok, 但不是 "success",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4840825/

相关文章:

jquery - 带有 yadcf 插件的 DataTables - 如何覆盖发送的参数

javascript - 用于数据组织的 SQL Server 查询

javascript - 连接两个 AJAX 请求返回到 1 个数组

javascript - 调用页面中未包含的 javascript 文件中的函数

c# - 鼠标悬停时图像闪烁

java - Google 图书 api 总是不返回任何内容

search - 如何在 Google 图书中按出版日期的倒序​​对搜索结果进行排序?

java - Googleapis.com 未知主机异常

javascript - rails 5 : AJAX not triggering for save/load callbacks (PATCH/GET)

jquery - Bootstrap 3.0 和 NiceScroll 3.5.0