2015-05-27 76 views
0

我試圖發佈瀏​​覽器的geoposition通過jQuery的Ajax

if (window.navigator.geolocation) { 
    var failure, success; 
    success = function(position) { 
     var stringData = JSON.stringify(position, null); 
     $.ajax({ 
      type: 'POST', 
      url: 'file_2.php', 
      data: { data: stringData } 
     }); 
    }; 
    failure = function(message) { 
     alert('Cannot retrieve location!'); 
    }; 
    navigator.geolocation.getCurrentPosition(success, failure, { 
     maximumAge: Infinity, 
     timeout: 5000 
    }); 
} 

但是,當它在file_2的陣列接收爲空,拋出此警報「通知:未定義指數:座標英寸..」

file_2.php

if(isset($_POST['data'])){    
    $dataString = $_POST['data'];  
    $Geoposition = json_decode($dataString, true); 
    $lat = $Geoposition['coords']['latitude']; 
    $lng = $Geoposition['coords']['longitude']; 
} 
+0

嘗試做,print_r的file_2.php –

+0

也是我想你應該設置你的dataType在頁面上($ _ POST): 'JSON' http://api.jquery.com/jquery.ajax/ –

+0

喜there .. print_r prints {} ..設置dataType沒有產生變化..謝謝 – Cactux

回答

0

基於日誌,StringData是的值是{}。其空

+0

在發佈之前首先檢查stringData的值到服務器 –

+0

'console.log'和'network'開發者標籤是你這類東西的朋友。 – h2ooooooo

+0

我已經做到了。 console.log(stringData),它應該在將geoposition數組顯示爲字符串時打印相同的{}。看起來像JSON.stringify不工作? – Cactux