我用Phonegap Cordova制作了一个应用程序,当我在Android上测试它时,一切都很好,但是当我在Windows Phone 8.1上测试它时,它给了我以下错误:
APPHOST9601:无法加载 http://www.example.com/apiv2/process.php/Login2?Email=xxxx@xxxx.com&Password=7c4a8d09ca3762af61e59520943dc26494f8941b&callback=angular.callbacks._0。应用无法在本地上下文中加载远程 Web 内容。文件:索引.html。我正在使用Angularjs和Onsenui。
编辑:
代码为:
var apiprincipal = 'http://www.example.com/apiv2/process.php/';
// Log In Controller
app.controller('loginController', [ '$http', '$scope', '$rootScope', function($http, $scope, $rootScope){
$scope.email = '';
$scope.password = '';
$scope.loginN = function(){
if($scope.email==='' && $scope.password===''){
ons.notification.alert({message: "Vou00E7u00EA deveru00E1 preencer os dois campos usuu00E1rio e senha"});
} else {
modal.show();
$http.jsonp(apiprincipal+'Login2?Email='+$scope.email+'&Password='+CryptoJS.SHA1($scope.password)+'&callback=JSON_CALLBACK').success(
function(response){
if(response.status=='ok'){
console.log('WORKING')
} else{
modal.hide();
}
}
);
}
};
}]);
首先,尝试删除一些不必要的代码以获得更具可读性的问题。
您的网址应如下所示
$http.jsonp(apiprincipal+'Login2?Email='+$scope.email+'&Password='+CryptoJS.SHA1($scope.password)+'&_jsonp=JSON_CALLBACK')
如果&_jsonp=JSON_CALLBACK
不起作用,请将其更改为?_jsonp=JSON_CALLBACK
在我的应用程序中也是一样的,昨天我正在阅读一篇文章,所以我像这样修复它:
http://amyurl.com/wp-json/posts?_jsonp=JSON_CALLBACK
现在它正在工作。
面向Windows 8.1时遇到了同样的问题。
首先,我检查了后端支持的 CORS。我没有找到在Windows 8.1中保留JSONP的方法,我不得不将其更改为简单的GET方法。然后我从 URL 中删除了"回调"。
参考您的代码,它应该看起来像这样
$http.get(apiprincipal+'Login2?Email='+$scope.email+'&Password='+CryptoJS.SHA1($scope.password)).success(function(response) {
if(response.status=='ok'){
console.log('WORKING');
} else{
modal.hide();
}
});
它对我来说效果很好,希望它可以帮助其他人。