2016-11-16 102 views
1

我的工作在Udacity的Web开发Nanodegree课程的项目。我决定使用餐厅信息并生成我的API密钥。然而,当我使用它在AJAX对象,以获取数据,开发工具显示我的“无效的API”的错误。但是,API是正确的。请帮忙。无法访问Zomato API的JSON对象

这里是我的代码:

$(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 -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是什么意思。

回答

3

请尝试下面的代码片段:

$(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); 
    }); 
    }); 
}); 

然而,上述方法由于安全问题气馁。您可以通过在服务器端可以从按钮单击事件作为Ajax调用被称为写的处理程序访问使用服务器在PHP服务器调用的API Zomato。下面是示例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);