2016-11-08 89 views
1

我正在请求使用Ajax Google Time Zone API并按照this tutorial不能限制API密钥访问

var apicall = 'https://maps.googleapis.com/maps/api/timezone/json?location=39.6034810,-119.6822510&timestamp=1331161200&key=YOUR_API_KEY' 

var xhr = new XMLHttpRequest() // create new XMLHttpRequest2 object 
xhr.open('GET', apicall) // open GET request 
xhr.onload = function(){ 
    if (xhr.status === 200){ // if Ajax request successful 
     var output = JSON.parse(xhr.responseText) // convert returned JSON string to JSON object 
     console.log(output.status) // log API return status for debugging purposes 
     if (output.status == 'OK'){ // if API reports everything was returned successfully 
        // do something 
     } 
    } 
    else{ 
     alert('Request failed. Returned status of ' + xhr.status) 
    } 
} 
xhr.send() // send request 

我已经更换了关键的参数与我产生API控制台中的API密钥,并且请求起作用。问题是我似乎无法通过Google控制台中的Referrer或Server IP来限制API密钥访问 - 指定我的服务器或IP的域不起作用。我的猜测是,Ajax不会发送引荐来源或服务器IP信息以及Google的请求,以确定它是否是有效请求?目前我坚持使用没有 API密钥限制,当然这当然不是一个好主意。

任何人在通过AJax调用Google API时都有限制Google API密钥访问的经验吗?

回答