英特尔 XDK 中的 HTTP 请求

HTTP requests in Intel XDK

我之前在 2 月 23 日更新之前在英特尔 XDK 平台上构建了一个应用程序,现在当我尝试 运行 模拟器时软件已经更新,它只是崩溃了。

之前我通过以下方式向进程 php 页面发送了获取请求以进行登录。

 $(document).ready(function(){
$('form.login').submit(function () {
var user = $(this).find("[name='user']").val();
var pass = $(this).find("[name='pass']").val();
var sublogin = $(this).find("[name='sublogin']").val();

// ...
    $.ajax({
type: "POST",
url: "http://www.domain.com/data/apps/project1/process.php",
data: {
    user : user,
    pass : pass,
    sublogin : sublogin,
},
 success: function(response){                       
        if(response == "1")
                    {

                     $("#responsecontainer").html(response);    

                    window.location.href = "menu.html"; 

                    }
                    // Login failed
                    else
                    {
                         $("#responsecontainer").html(response);  
                    }


        //alert(response);
    }
   });
      this.reset();
        return false;
      });
   });

然而,似乎正是这段代码导致了问题,如果我删除这段代码,项目将不再崩溃。

当我通读 Intel XDK 文档时,它只显示调用 XML 文件的 HTTP 请求。

所以我希望有人知道为什么这是导致问题的原因,或者我如何构造它以使 Intel XDK 不会崩溃。

存在关于通过模拟器引用的相对位置 URL 的回归错误,正在修复。这仅与模拟器有关。在设备上使用 App Preview 并使用构建版本,您的应用应该可以在测试选项卡上正常工作。

在我们想出解决模拟器崩溃的方法之前,这里有一个解决方法。当您尝试使用 window.location.href = "menu.html" 更改当前页面的位置时,就会出现问题;并且模拟器无法在 ajax 调用期间解析相对路径。

请使用以下代码作为解决方法。

var newLocation = 'menu.html'; 
if ( window.tinyHippos ) { 
// special case for emulator
  newLocation = getWebRoot() + newLocation;
}
document.location.href=newLocation;
function getWebRoot() {
    "use strict" ;
    var path = window.location.href ;
    path = path.substring( 0, path.lastIndexOf('/') ) ;
    path += '/';
    return path;
}

斯瓦提语