2012-12-06 30 views
2

我一直在浪費大量的時間去做一些我認爲非常簡單的事情,但是沒有很好的例子來說明ajax調用的方式和做法。jQuery ajax jsonp調用總是得到意想不到的令牌錯誤

這是我的javascript代碼:

$.ajax({ 
type: 'GET', 
url: 'https://maps.googleapis.com/maps/api/timezone/json', 
dataType: 'jsonp', 
data: { 
    location: myLoc, 
    timestamp: myTime, 
    sensor: true 
}, 
success: function(){alert('OK');}, 
error: function(){alert('FAIL');} 
}) 
} 

變量 「myLoc」 和 「數值指明MyTime」 都沒有問題。實際上,如果我將URI剪切並粘貼到瀏覽器中,它就可以正常工作並顯示數據:https://maps.googleapis.com/maps/api/timezone/json?callback=jQuery18307430207263678312_1354817349576&location=36.7468422%2C-119.7725868&timestamp=1354817353&sensor=true&_=1354817353398

從我一直在閱讀的內容中,「回調」參數是自動生成的,並且代碼應該足夠智能調用成功功能或錯誤功能。

chrome返回的錯誤是「未捕獲的語法錯誤意外標記」:'「 無論我嘗試什麼,javascript代碼始終調用錯誤函數。我添加了一個jsonpCallback參數(沒有工作),json參數(沒有工作),將dataType更改爲「json」(由於跨域錯誤而無法工作)。

請幫助。

+0

api似乎不支持您使用它的方式jsonp。 –

+0

關於如何將結果導入變量的任何想法? – elvis

+0

首先你必須弄清楚如何使api支持JSONP,如果它可以支持JSONP的話。否則,你將不得不求助於服務,如YQL或服務器端代理 –

回答

0
$.ajax({ 
    type: 'GET', 
    url: 'https://maps.googleapis.com/maps/api/timezone/json', 
    dataType: 'jsonp', 
    contentType: 'application/json; charset=utf-8', 
    data: JSON.Stringify({ 
     location: myLoc, 
     timestamp: myTime, 
     sensor: true 
    }), 
    success: function(){alert('OK');}, 
    error: function(){alert('FAIL');} 
}); 
相關問題