Javascript 使用AngularJS的Windows Phone 8.1上的Phonegap可以';t从我的API中检索JSONP
我用Phonegap Cordova制作了一个应用程序,在Android上测试时一切正常,但在Windows Phone 8.1上测试时出现以下错误: APPHOST9601:无法加载。应用程序无法在本地上下文中加载远程web内容。文件:index.html。我正在使用Angularjs和Onsenui 编辑: 代码是:Javascript 使用AngularJS的Windows Phone 8.1上的Phonegap可以';t从我的API中检索JSONP,javascript,angularjs,cordova,onsen-ui,Javascript,Angularjs,Cordova,Onsen Ui,我用Phonegap Cordova制作了一个应用程序,在Android上测试时一切正常,但在Windows Phone 8.1上测试时出现以下错误: APPHOST9601:无法加载。应用程序无法在本地上下文中加载远程web内容。文件:index.html。我正在使用Angularjs和Onsenui 编辑: 代码是: var apiprincipal = 'http://www.example.com/apiv2/process.php/'; // Log In Controller
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: "Vo\u00E7\u00EA dever\u00E1 preencer os dois campos usu\u00E1rio 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();
}
}
);
}
};
}]);
首先,尝试删除一些不必要的代码以获得更具可读性的问题 您的URL应该如下所示
$http.jsonp(apiprincipal+'Login2?Email='+$scope.email+'&Password='+CryptoJS.SHA1($scope.password)+'&_jsonp=JSON_CALLBACK')
如果&_jsonp=JSON\u回调
不起作用,请将其更改为?_jsonp=JSON\u回调
我在我的应用程序中也使用了相同的功能,昨天我在读一篇文章,所以我将其修改为:
http://amyurl.com/wp-json/posts?_jsonp=JSON_CALLBACK
现在它正在工作 我在瞄准Windows 8.1时也遇到了同样的问题 首先,我检查了后端支持的CORS。我没有找到在Windows8.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();
}
});
这对我来说效果很好,希望能帮助其他人。看来您使用的方法可能违反了Windows 8.1设备的安全限制。你能列出你正在执行的导致这个错误的代码吗?这看起来像是一个CORS问题,确切地说是一个CORS问题。您需要为跨源资源共享(CORS)添加头。但我的配置应用程序文件中有,有什么问题吗?如果我使用adroid运行该应用程序,该应用程序将非常有效,但如果我构建到windows phone,则会出现此错误。您尚未列出显示此错误的代码。此解决方案不适用于我,我必须将我的JSONP调用更改为GET调用,如
$http.GET(…