2012-01-14 112 views
1

我目前正在進行跨域數據傳輸,並且已經打了一個非常大的塊,我花了數小時的時間試圖讓這個工作起來,看起來好像要做到這一點是正確的,所以任何指針都會被大大接受。

我正在使用jquery & getJSON從php頁面返回一個id,它是json_encodes數據;

我jQuery代碼是'

$.getJSON("http://www.icetrack.it/scripts/php/data/ipAddress.php", 

    {  
     location: locationVar, 
     user_key: user_key, 
     refer: refer, 
     title: title, 
     async:false,   
     dataType: 'json', 
     success: function(data) { 

      alert(data); 
     } 
       },"json"); 

進行對話的輸出沒有什麼比其他PHP頁面,

echo json_encode(array("id"=>"$id")); ?> 

本頁面輸出JSON這樣

{"id":"198"} 

然而,所有我的jquery將返回一個未定義的變量,我在哪裏錯了,這是瘋狂駕駛!

謝謝大家!

+1

請一定要有一個真正的好理由使用同步('異步:FALSE')。您的頁面將等待完成,如果沒有,則頁面無響應。通過在成功中調用後續函數來更好地找到解決辦法,所以頁面不會鎖定? – Nanne 2012-01-14 14:05:27

回答

0

您將錯誤的參數傳遞給$.getJSON() - 您提供的許多參數僅適用於$.ajax()

特別地,data參數$.getJSON()CGI參數被髮送到服務器,而不是爲arbirtrary $.ajax()參數。

試試這個:

$.ajax({ 
    url: "http://www.icetrack.it/scripts/php/data/ipAddress.php", 
    data: {  
     location: locationVar, 
     user_key: user_key, 
     refer: refer, 
     title: title 
    }, 
    async:false,   
    dataType: 'json', 
    success: function(data) { 
     alert(data); 
    } 
}); 
+0

嗨,感謝您的快速響應,我已經從同一個域內工作,儘管我試圖發送兩個域 - 這是相同的$ .ajax調用嗎? – dj10dj100 2012-01-14 14:25:31

+0

如果您要跨域,您需要PHP中的「Access-Allow-Origin」標頭,或者JSONP輸出 – Alnitak 2012-01-14 15:50:46

+0

非常感謝!一直在尋找AGES!再次感謝! – dj10dj100 2012-01-14 16:03:30