2015-08-31 67 views
0

我有我的角度應用程序控制器上此代碼:

$http.jsonp('http://192.168.1.210/json', config).success(function (data) { 
    vm.lightSensor = data.a0-vm.lightThreshold; 
    vm.detected = (data.d2==1) ? 'Yes' : 'No'; 
    vm.toggle = (data.d7==1) ? 'on' : 'off'; 
    vm.jsonerror = false; 
}).error(function (data, status, headers, config) { 
    alert(status); 
    vm.jsonerror = true; 
}); 

它,當我做了警報拋出一個404個狀態錯誤,但是,這種情況在Safari的iOS但不是在iOS上的Chrome,請求工作正常。

我認爲,因爲服務器是Arduino,它可能與Safari iOS發送的請求標題有關,也許Arduino服務器不喜歡並返回404錯誤。

我試圖用weinre調試它,但它沒有顯示任何xhr請求(至少對我來說)。

還有哪些其他不太乏味的方式來調試請求,以便我可以看到哪些頭部正在發送考慮到我沒有Mac?

+0

你需要在查詢參數中追加回調,URL會變成這樣'http://192.168.1.210/json?callback = JSON_CALLBACK' –

+0

謝謝@PankajParkar但那不是它,它是在''config''變量上被傳遞給''jsonp()''函數。此外,在Chrome開發工具展示中,正在進行調試。 – Aleix

回答

0

我已經解決了它。我可以通過修改Arduino服務器在Arduino串行控制檯輸出標題來查看標題。

原來的問題是arduino服務器本身,它沒有返回200代碼,所以它在Safari iOS中失敗。不知何故,它仍然在其他瀏覽器上工作,但我不知道爲什麼。