【问题标题】:Connecting to an external API with Angular使用 Angular 连接到外部 API
【发布时间】:2015-12-14 03:12:02
【问题描述】:

我正在尝试连接到 Expedia Api。有了这个,他们就有了一个 api 密钥和 id。

我使用的是 jsonp,但其中存在导致问题的错误。另一件事是我的 api 密钥暴露在 javascript 中。

所以现在我必须找到另一种方法。我现在正在请求 json,但当然我不能用它获得跨域,所以我找到了一个 php 代理。我的应用程序现在依赖于 php(虽然这没关系)。当我访问 php 代理时,我现在收到身份验证错误。我在不同的站点上尝试了不同的端点并且脚本有效。

因此我无法访问此 API。

似乎很少有关于如何制作 api 跨站点、php 代理或身份验证的信息、教程和脚本。我认为现在依赖这种技术的网站数量可能会有所增加。

如何制作 php 代理并将这些数据返回到 Angular? 如何安全地隐藏我的 api 密钥?

【问题讨论】:

    标签: javascript php angularjs ajax


    【解决方案1】:

    将所有 API 密钥等保存在服务器上的 PHP 文件中。在那个 PHP 文件中,您需要 curl 到 API。然后让您的 PHP 脚本返回其 API 返回的任何内容的 json_encode()。这样就没有人看到你的 API 了。

    【讨论】:

    • 好吧,这是有道理的..我怎样才能通过返回 Angular 来完成往返行程?
    • $http.post('/url/to/your/script.php', data) .then(function(s,r){ console.log(r.data); }); r.data 将包含来自您的 php 脚本的响应(它将回显来自 API 的响应)
    • 非常感谢,现在知道了。但是我的 php 响应现在是空白的,或者它包含 html。我现在如何从 php 文件中返回 json 对象?它作为变量输出 $response = json_decode(curl_exec($ch));
    • $response = curl_exec($ch);回声 $response;
    猜你喜欢
    • 1970-01-01
    • 2011-07-10
    • 2022-08-11
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    • 2020-09-09
    相关资源
    最近更新 更多