【发布时间】:2016-11-15 14:05:41
【问题描述】:
我有一个提交给 Apple 的应用程序存在问题,Apple 声称这是由于该应用程序在仅 ipv6 的网络上运行时出现故障。
从应用程序内部的 javascript 中,我使用 XmlHttpRequest 从第三方服务器获取数据,我认为问题可能是第三方服务器没有正确处理来自 ipv6 网络的请求。
Apple 告诉我的是确保我正确处理它,并且服务器支持 ipv6 请求。问题是我无法控制我们用来获取数据的第三方服务器。我尝试对服务器运行在线 ipv6 兼容性测试,这向我展示了可能是原因:第一个 DNS 服务器正在返回 AAAA 记录,而另一个没有。据我了解,这可能会导致客户端认为服务器支持 ipv6,即使实际上并非如此。这似乎是请求失败的合理原因吗?
下一个问题是我是否可以在客户端做些什么来强制在 ipv4 上进行通信,即使客户端网络在 ipv6 上运行。这是我的代码,很简单:
var xhr = new XMLHttpRequest();
xhr.responseType = "document";
xhr.addEventListener("load", function() {
callback(xhr.responseXML);
}, false);
xhr.open("GET", url, true);
xhr.send();
希望有人可以帮助我了解整个 ipv6 令人头疼的问题,因为网络不是我的专业领域。我只需要让这些请求正常工作,Apple 就可以接受该应用程序。
【问题讨论】:
-
Apple 说的究竟是什么问题?
-
他们只说应用程序在 ipv6 网络上运行时失败了,从他们发送的屏幕截图来看,似乎是 ajax 请求失败了。所以很遗憾,我们没有更具体的信息。
标签: javascript ajax xmlhttprequest ipv6