javascript - 无法访问 Zomato API JSON 对象

标签 javascript json api curl zomato-api

我正在 Udacity 的网络开发纳米学位类(class)中开展一个项目。我决定使用餐厅信息并生成我的 API key 。但是,当我在 AJAX 对象中使用它来获取数据时,开发工具向我显示“无效 API”错误。不过,API 是正确的。请帮忙。

这是我的代码:

$(document).ready(function(){
$("button").click(function(){
    $.get("https://developers.zomato.com/api/v2.1/restaurant?res_id=MY_RES_ID", { "Accept": "application/json", "user-key": 'MY_API_KEY' }, function(data, status){
        alert("Data: " + data + "\nStatus: " + status);
    });
});

});

这是 Zomato 的文档:

curl :

curl -X GET --header "Accept: application/json" --header "user-key: MY_API" "https://developers.zomato.com/api/v2.1/restaurant?res_id=MY_RES_ID"

网址:

https://developers.zomato.com/api/v2.1/restaurant?res_id=MY_RES_ID

请注意,我使用的餐厅 ID 和 API 是正确的。我不太了解 PHP,所以我不知道 curl 是什么意思。

最佳答案

请尝试以下代码:

$(document).ready(function(){
  $("button").click(function(){
    $.get("https://developers.zomato.com/api/v2.1/restaurant?res_id=MY_RES_ID&apikey=MY_API_KEY", function(data, status){
        alert("Data: " + data + "\nStatus: " + status);
    });
  });
});

但是,由于安全问题,不鼓励使用上述方法。您可以通过在服务器端编写一个处理程序来使用 PHP 中的服务器到服务器调用来访问 Zomato API,该处理程序可以作为 ajax 调用从按钮单击事件中调用。这是示例 PHP 处理程序:

$curl_channel = curl_init('https://developers.zomato.com/api/v2.1/restaurant?res_id=MY_RES_ID&apikey=MY_API_KEY');
curl_setopt($curl_channel, CURLOPT_RETURNTRANSFER, true);
$curl_response = curl_exec($curl_channel);
curl_close($curl_channel);
//Convert output to object
$curl_output = json_decode($curl_response);

关于javascript - 无法访问 Zomato API JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40634538/

相关文章:

javascript - jQuery Perfect Scroll - 在容器中间启动滚动条?

javascript - webpack babel loader 编译 jsx 失败

javascript - 正确加载顺序 jQuery、Bootstrap 和 select2 .js 文件

php - 从访问 token 获取 Facebook 用户(PHP SDK 3.0.1)

javascript - 如何阻止对 CKEDITOR textarea 中的某些内容进行编辑?

java - java中JSON动态反序列化

json - 数据逐行而不是成批插入

java - 如何将 3h 解析为 java?(无法设置以数字开头的变量)

api - Canvas LMS API 中缺少注册条款

javascript - 使用 AngularJS $http 服务和 Coinbase API 的 MIME 类型检查错误