调试 Angular 的 $http.jsonp();在 Safari 上 iOS
Debug Angular's $http.jsonp(); on Safari iOS
我的 Angular 应用控制器上有这段代码:
$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 发送的请求 headers 有关,Arduino 服务器可能不喜欢并且returns 404 错误。
我尝试用 weinre 调试它,但它没有显示任何 xhr 请求(至少对我而言)。
考虑到我没有 Mac,还有哪些其他 not-too-tedious 方法可以调试请求,这样我就可以看到正在发送什么 headers?
我已经解决了。我可以通过修改 Arduino 服务器以在 arduino 串行控制台中输出 headers 来查看 headers。
原来问题出在 arduino 服务器本身,它没有 return 200 代码,所以它在 Safari iOS 中失败了。不知何故它仍然适用于其他浏览器,但我不知道为什么。
我的 Angular 应用控制器上有这段代码:
$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 发送的请求 headers 有关,Arduino 服务器可能不喜欢并且returns 404 错误。
我尝试用 weinre 调试它,但它没有显示任何 xhr 请求(至少对我而言)。
考虑到我没有 Mac,还有哪些其他 not-too-tedious 方法可以调试请求,这样我就可以看到正在发送什么 headers?
我已经解决了。我可以通过修改 Arduino 服务器以在 arduino 串行控制台中输出 headers 来查看 headers。
原来问题出在 arduino 服务器本身,它没有 return 200 代码,所以它在 Safari iOS 中失败了。不知何故它仍然适用于其他浏览器,但我不知道为什么。