【发布时间】:2026-02-21 15:10:01
【问题描述】:
在 Microsoft Visual Studio Express 中,我使用“Windows Phone HTML5 App”模板启动了一个新项目。如果我运行模拟器,一切正常。接下来我将以下 JavaScript 添加到 index.html 页面:
<script type="text/javascript">
window.onload = function(){
alert(window.location.href); // --> x-wmapp0:/Html/index.html
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
alert('ON READY STATE CHANGE');
if(xmlhttp.readyState==4){
alert(xmlhttp.responseText);
}
}
//xmlhttp.open("GET","text.txt",true); // I have tried all of these
//xmlhttp.open("GET","Html/text.txt",true);
//xmlhttp.open("GET","/Html/text.txt",true);
xmlhttp.open("GET","x-wmapp0:/Html/text.txt",true);
xmlhttp.send();
}
</script>
现在,当我在模拟器中运行应用程序时,我会收到第一个带有窗口位置的警报,但不会收到来自 readyState 或 onreadystatechange 的任何警报。 text.txt 文件与 index.html 处于同一级别。我已经在 IE10 中运行了这段代码,它工作得很好。关于我做错了什么有什么想法吗?
更新:我已经将它部署在实际的 Windows 8 手机上并得到了相同的结果
干杯
【问题讨论】:
-
你检查
xmlhttp.status == 200了吗? -
是的,您可以检查任何状态,
onreadystatechange函数似乎根本没有触发。 -
您的实时代码中有
alert()吗? IE 有时会出于某种原因拒绝正确运行任何使用alert()的代码。 -
我已取出警报,但仍然没有成功
-
您确定您在
open()方法中的路径是正确的吗?您必须在手机上安装该主机才能正常工作。
标签: javascript html visual-studio xmlhttprequest windows-phone