3

我需要获取 Google Fonts 上所有可用字体的列表并将它们显示在下拉列表中,但我无法理解 Google Fonts 的文档。

这是我到目前为止所得到的。

当我在网络浏览器中访问这个时,我得到一个包含所有字体的 json 响应,正如预期的那样:

https://www.googleapis.com/webfonts/v1/webfonts?sort=popularity&key={my-key-here}

但是当我 ajax 时,我在控制台中得到了这个:

XMLHttpRequest cannot load https://www.googleapis.com/webfonts/v1/webfonts?sort=popularity&key={my-key-here}. Origin {domain} is not allowed by Access-Control-Allow-Origin.

顺便说一句,我正在使用 jQuery。都试过了$.ajax$.getJSON

经过一番谷歌搜索后,我意识到也许我需要使用webfont 加载器来检索列表?好吧,够公平的。所以我将脚本添加到页面:

<script src="http://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js"></script>

但是然后呢?API 似乎只允许获取和应用特定的字体,它实际上并没有返回任何数据,不是吗?

谁能指出我正确的方向或告诉我如何提出请求?解析返回的数据并在之后处理它没什么大不了的,但我就是不知道如何实际获取数据。

4

2 回答 2

3

好的,我遇到了同样的问题,在新窗口中打开 URL 本身可以正常工作,但它不能作为 ajax 请求工作。

您的 ajax/json 请求是正确的:

https://www.googleapis.com/webfonts/v1/webfonts?key={my-key-here}

而且你不需要添加这一行:

<script src="http://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js"></script>

似乎您因为 google 服务器而不是您的代码而一无所获。如果你新创建了一个 API 密钥或者你最近激活了你的 webfont 服务,给它几分钟,你很快就能使用你的 webfont 服务

只是为了为您确认,请尝试以下 JSON 请求,它可以完美运行:

$(document).ready(function() {
    $.getJSON('https://www.googleapis.com/webfonts/v1/webfonts?key=MY_API_KEY', function(response) {
        //alert('json object fetched successfully!');
    });
});
于 2013-03-02T14:43:12.517 回答
-4

To retrieve the dynamic list of web fonts offered by the Google Web Fonts service, send the following request:

https://www.googleapis.com/webfonts/v1/webfonts?key=YOUR-API-KEY

Source: Google Web Fonts API - Developer API

于 2012-12-13T09:07:09.737 回答