2010-07-28 82 views
1

我想使用的getJSON提交的用戶名和密碼的互聯網服務和提醒「喜」的getJSON問題(jQuery的)

這是我的代碼:

$.getJSON(address+"?format=json&jsoncallback=?", {CustomerEmail: email, Password: password}, 
    function(){ 
    alert("hi"); 
}); 

的HTTP標頭提交200消息所以它應該沒問題,但它沒有進入功能,有誰知道爲什麼請?

+0

頁面是否位於同一臺服務器上?您很可能違反了同源策略:http://en.wikipedia.org/wiki/Same_origin_policy – 2010-07-28 09:02:29

+0

@Felix Kling:只要'jsoncallback ='在查詢字符串中,它就被視爲'jsonp',isnt它? – jAndy 2010-07-28 09:06:54

+0

沒有不在同一臺服務器 – 2010-07-28 09:06:58

回答

4

頁面是否位於同一臺服務器上?最有可能的是你違反了same-origin policy

你可以利用JSONP.getJSON()希望被命名的callback代替jsoncallback參數: 「回調=」

JSONP

如果URL中包含字符串在URL中,請求被視爲JSONP。有關更多詳細信息,請參閱$.ajax()中關於jsonp數據類型的討論。

因此使其工作你的情況,你可以嘗試用$.ajax()

$.ajax({ 
    url: address+"?format=json", 
    data: {CustomerEmail: email, Password: password}, 
    dataType: "jsonp", 
    jsonp: "jsoncallback", 
    success: function(data) { 
    alert("hi"); 
    } 
}); 
+0

然後我會如何提交數據到webservice請? – 2010-07-28 09:25:36

+0

@C:哦,對不起,我忘了添加這個,我更新了我的答案(但實際上它在文檔中有描述;)) – 2010-07-28 09:41:14

1

檢查,如果您收到的JSON數據是有效的。尤其是,所有字符串(即使在屬性名稱中)都被正確地引用。

從jQuery的文檔:

重要:對於jQuery 1.4,如果JSON文件包含語法錯誤, 請求通常會失敗 默默。由於這個原因避免頻繁手動編輯JSON數據的 。 JSON是 數據交換格式,其語法規則 比JavaScript的對象字面符號更嚴格。 例如,所有以JSON表示 的字符串,無論它們是屬性 還是值,都必須包含在 雙引號中。有關JSON 格式的詳細信息,請參見http://json.org/