2014-01-06 77 views
0

訪問網站http://www.dentalo.se時,您應該看到此圖像。Jquery Rest服務響應僅適用於Chrome瀏覽器,但不適用於IE或FF

enter image description here

我一個停靠http://www.dentalo.se/RestService/Dentalo.svc/Companies一個RestService,我知道它的工作,並得到響應。我已經測試過這項服務。

我正在使用Google地圖呈現Google地圖的位置。 當使用Chrome瀏覽器時呈現位置。但我不明白爲什麼它不起作用在Firefox,Internet Explorer。在移動設備上,它不適用於任何瀏覽器,即使是chrome

這是我在Firefox中收到的錯誤消息。如果只是訪問http://www.dentalo.se,您將看到該錯誤。我只想添加相關的代碼。如果你需要更多的代碼告訴我。


sg = [object Object], url = error, line = [Exception... "Failure" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: http://dentalo.se/assets/plugins/jquery-1.10.2.min.js :: .send :: line 6" data: no]


這一些JavaScript的是,我已經代碼。

較短的版本的JavaScript代碼

if (navigator.geolocation) { 
       navigator.geolocation.getCurrentPosition(ShowPosition); 
      } 
      else { 
       x.innerHTML = "Geolocation is not supported by this browser."; 
      } 
      function showError(error) { 
       switch (error.code) { 
        case error.PERMISSION_DENIED: 
         alert("User denied the request for Geolocation."); 
         break; 
        case error.POSITION_UNAVAILABLE: 
         alert("Location information is unavailable."); 
         break; 
        case error.TIMEOUT: 
         alert("The request to get user location timed out."); 
         break; 
        case error.UNKNOWN_ERROR: 
         alert("An unknown error occurred."); 
         break; 
       } 
      } 
      function ShowPosition(position) { 
       //begin rest call 
       $("#latitude").val(position.coords.latitude); 
       $("#longitude").val(position.coords.longitude); 
       $.ajax({ 
        type: "GET", 
        cache: false, 
        async: false, 
        url: "http://www.dentalo.se/RestService/Dentalo.svc/Companies", 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function (data) { 
         map = new GMaps({ 
          el: '#map', 
          lat: position.coords.latitude, 
          lng: position.coords.longitude, 
          zoom: 15, 
          zoomControl: true, 
          mapTypeId: google.maps.MapTypeId.ROADMAP, 
          zoomControlOpt: { 
           style: google.maps.ZoomControlStyle.SMALL, 
           position: google.maps.ControlPosition.RIGHT_TOP 
          }, 
          panControl: true, 
          scrollwheel: true 
         }); 
         map.addMarker({ 
          lat: position.coords.latitude, 
          lng: position.coords.longitude, 
          title: 'Min position', 
          icon: 'http://www.dentalo.se/assets/img/map/user_x64.png' 
         }); 
         $.each(data, function (index, item) { 
            map.addMarker({ 
                lat: item.Latitude , 
                lng: item.Longitude , 
                title: item.Address , 
                icon: GetMarkerImage(item.Status), 
                infoWindow: { 
                 content: '<div style="width: 300px"><h4>' + item.Name + '</h4><br /><p>' + item.Address + ', ' + item.County.Name + '</p><div class="four columns alpha"><a class="btn blue ' + SetDisplayClass(item.Status) + '" href="booking/' + item.CompanyId + '" ><i class="m-icon-swapright m-icon-white"></i> Boka</a> <a href="#" onClick="showPopUp(&apos;' + item.CompanyId +'&apos;);return false;" class="btn default">Information</a></div></div>', 
                } 
             }) 
         }); 
        }, 
        error: function (msg, url, line) { 
         //alert('error trapped in error: function(msg, url, line)'); 
         alert('msg = ' + msg + ', url = ' + url + ', line = ' + line); 
        } 
       }); 

許多感謝的話。

*開始編輯*

我已經解決了這個問題。 這是一個Url問題。在其餘服務的ajax調用中,您不應指定完整的Url。

你應該做這樣的

我改變這一行

網址: 「http://www.dentalo.se/RestService/Dentalo.svc/Companies」,

網址: 「RestService/Dentalo.svc /公司」,

 $.ajax({ 
      type: "GET", 
      cache: false, 
      async: false, 
      url: "RestService/Dentalo.svc/Companies", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (data) { 
       map = new GMaps({ 
        el: '#map', 
        lat: position.coords.latitude, 
        lng: position.coords.longitude, 
        zoom: 15, 
        zoomControl: true, 
        mapTypeId: google.maps.MapTypeId.ROADMAP, 
        zoomControlOpt: { 
         style: google.maps.ZoomControlStyle.SMALL, 
         position: google.maps.ControlPosition.RIGHT_TOP 
        }, 
        panControl: true, 
        scrollwheel: true 
       }); 
       map.addMarker({ 
        lat: position.coords.latitude, 
        lng: position.coords.longitude, 
        title: 'Min position', 
        icon: 'http://www.dentalo.se/assets/img/map/user_x64.png' 
       }); 
       $.each(data, function (index, item) { 
          map.addMarker({ 
              lat: item.Latitude , 
              lng: item.Longitude , 
              title: item.Address , 
              icon: GetMarkerImage(item.Status), 
              infoWindow: { 
               content: '<div style="width: 300px"><h4>' + item.Name + '</h4><br /><p>' + item.Address + ', ' + item.County.Name + '</p><div class="four columns alpha"><a class="btn blue ' + SetDisplayClass(item.Status) + '" href="booking/' + item.CompanyId + '" ><i class="m-icon-swapright m-icon-white"></i> Boka</a> <a href="#" onClick="showPopUp(&apos;' + item.CompanyId +'&apos;);return false;" class="btn default">Information</a></div></div>', 
              } 
           }) 
       }); 
      }, 
      error: function (msg, url, line) { 
       //alert('error trapped in error: function(msg, url, line)'); 
       alert('msg = ' + msg + ', url = ' + url + ', line = ' + line); 
      } 
     }); 

* End Edit *

+0

錯誤消息,更多詳細信息等 – epascarello

+0

我編輯我的問題與錯誤消息 – user3046164

+0

唯一的錯誤,我得到它是超時,請你檢查你的請求的超時 – Jorge

回答

0

getCurrentPosition方法默認情況下有無限超時。試試這個:

navigator.geolocation.getCurrentPosition(ShowPosition, showError, {timeout:2000}) 

有,你可以在這個對象設置其他兩個選項:enableHighAccuracymaximumAge

退房:http://diveintohtml5.info/geolocation.html獲取更多信息。

+0

我不認爲這是問題。它可能是我使用錯誤的jQuery版本的前夫?爲什麼它抱怨http://dentalo.se/assets/plugins/jquery-1.10.2.min.js第6行? – user3046164

+0

不,地理位置是HTML5,並且不依賴於jQuery。它可能是你的瀏覽器版本。目前你沒有使用你的錯誤回調,試着用第二個參數,看看結果是什麼。順便說一句,我可以得到我的位置在IE 11提供的URL,但我沒有嘗試過FF。我的猜測是FF在抱怨與渲染地圖有關的東西。 – mambrow

+0

我認爲這是一些其他的問題,因爲我有一個是拋出警報的錯誤restcal錯誤處理功能 **錯誤:函數(MSG,網址,線){// 警報('錯誤被困在錯誤:功能(msg,url,line)'); alert('msg ='+ msg +',url ='+ url +',line ='+ line); } ** 但我真的被困在這裏。 – user3046164

相關問題