我无法在phonegap WP8应用上发出“https”请求。但是,它适用于“http”。我不确定它是IE问题还是任何安全例外。我正在使用lumia 520来测试应用程序。尝试在设备浏览器(lumia 520)上运行相同的代码并获得相同的结果。还尝试添加$ .support.cors = true和jQuery.support.cors = true;还尝试编辑config.xml,更改“access origin =”*“”以指定我的服务器URL。相同的代码适用于其他浏览器和Android,ios phonegap应用程序。这是我的代码。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="viewport"
content="width = device-width, minimum-scale=1, maximum-scale=1,user-scalable=no">
<title>myPage</title>
</head>
<link rel="stylesheet" href="js/jquery.mobile-1.2.0.css" />
<script src="js/jquery-1.8.2.min.js"></script>
<script src="js/jquery.mobile-1.2.0.js"></script>
<script type="text/javascript">
function auth(){
var serverURL = "https://XXXXXX.YYYYY.com/file1/servlet";
try {
var value = $('#name1').val();
var value1 = $('#pass1').val();
var key = $('#key').val();
var model="Browser";
var make="Browser";
var version='2.40';
var formData = {
"UserID" : value,
"Password" : value1,
"Type" : "Login",
"MAKE" : make,
"MODEL" : model,
"APP_VERSION" : version,
"Hybrid" : "Hybrid"
}
} catch (Err) {
}
console.log(formData)
var JSONs = JSON.stringify(formData);
$.ajax({
crossDomain : true,
type : "POST",
url : serverURL,
data : JSONs,
datatype : "json",
success : onSuccessLogin,
error : errorFailed
});
function onSuccessLogin(data) {
console.log("success"+JSON.stringify(data));
alert(JSON.stringify(data));
var returnData = JSON.parse(data);
if(returnData.ErrorMsg == "") {
alert("Login Success");
}
}
function errorFailed(error) {
alert("Unable to process"+JSON.stringify(error));
}
}
</script>
<body>
<div data-role="page" id="Login">
<input type="hidden" id="key" value="0000000000000000000" />
<input type="text" placeholder="Username" id="name1" value="" />
<input type="password" placeholder="Password" id="pass1" value="" />
<a href="#" onclick="auth();">Login</a>
</div>
</body>
</html>
带有“https”请求的它总是返回{“readyState”:0,“responseText”:“”,“status”:0,“statusText”:“error”}。请帮助
答案 0 :(得分:2)
这不是“HTTPS”问题,您可以尝试使用此示例
var req = new XMLHttpRequest();
req.open('GET', 'https://api.github.com/user/repos?page=2&per_page=100', false);
req.onreadystatechange = function () {
$(document.body).append(" -> "+req.responseText + "," + req.readyState + "<br>" + window.location);
}
req.send(null);
问题来自服务器,你应该添加标题
Access-Control-Allow-Origin: *
或您的WP URI
Access-Control-Allow-Origin: ms-appx-web://xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
您可以通过“window.location”调用获取您的应用“ms-appx-web:// xxxx ...”值,或者在身份名称=“xxxxx ....”中查看您的.appxmanifest。 &GT;
希望这有帮助!答案 1 :(得分:1)
这与设备日期有关...我的错误,从未检查设备日期,它没有同步,并且比当前时间提前1年。重置它真的很神奇!!!