我試圖做一個ajax調用谷歌的地方API來獲得業務評論,但沒有成功。 使用如何發送跨域請求到谷歌地方API(似乎不支持JSONP)?
crossDomain : true,dataType: 'jsonp',
是給錯誤
Uncaught SyntaxError: Unexpected token :
我認爲它不支持jsonp
..是有沒有辦法得到它?
感謝
我試圖做一個ajax調用谷歌的地方API來獲得業務評論,但沒有成功。 使用如何發送跨域請求到谷歌地方API(似乎不支持JSONP)?
crossDomain : true,dataType: 'jsonp',
是給錯誤
Uncaught SyntaxError: Unexpected token :
我認爲它不支持jsonp
..是有沒有辦法得到它?
感謝
請嘗試下面的代碼獲取從谷歌廣場API響應
$.ajax({
type: 'GET',
url: 'https://maps.googleapis.com/maps/api/place/autocomplete/json?&input=Houston&sensor=true&types=(cities)&key=<Your Key>',
async: false,
jsonpCallback: 'jsonCallback',
contentType: "application/json",
dataType: 'jsonp',
success: function (json) {
console.dir(json.sites);
},
error: function (e) {
console.log(e.message);
}
});
谷歌在廣場JSONP回調的形式迴應API.kindly更換你的鑰匙在URL
在返回的json中出現錯誤「Uncaught SyntaxError:Unexpected token:」。 –
同樣在這裏,不知道這是否曾經做過,但它不再做 – mobetta
我我剛剛遇到了這種情況,(雖然不完全是JavaScript),我找到了一個很好的解決方案。
使用ASP.NET,您可以創建一個執行System.Net.HTTPWebRequest的通用處理程序,然後將結果返回給ajax請求。
JAVASCRIPT:
$.ajax({
url: 'navHandler.ashx',
type: 'GET',
data: {
'action': 'getDirection',
'url':'https://maps.googleapis.com/maps/api/directions/json?origin='+ myLocation.coords.latitude + ',' + myLocation.coords.longitude +
'&destination=' + toAddress.value.replace(' ', '+') +
'&key=<YOUR API KEY>'
},
success: function (data) {
console.log(JSON.parse(data));
}
});
ASP:
Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim qs = context.Request.QueryString
Select Case qs("action")
Case "getDirection" : context.Response.Write(getDirections(qs))
End Select
End Sub
Private Function getDirections(qs)
Return getWebResponse(qs("url"))
End Function
Private Function getWebResponse(url As String)
Dim req As System.Net.HttpWebRequest = System.Net.WebRequest.Create(url)
With req
.Method = "GET"
Using sr As New IO.StreamReader(.GetResponse.GetResponseStream)
Return sr.ReadToEnd
End Using
End With
End Function
理論上這可以解決大部分的跨域問題。希望這可以幫助某人。
[Access-Control-Allow-Origin使用Google Maps JavaScript API v3]的可能重複(http://stackoverflow.com/questions/17784508/access-control-allow-origin-using-google-maps-javascript- api-v3) –