[英]Phonegap on Windows Phone 8.1 with AngularJS can't retrieve JSONP from my API
我用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內容。 文件:index.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: "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();
}
}
);
}
};
}]);
首先,嘗試刪除一些不必要的代碼以獲得更易讀的問題。
您的網址應如下所示
$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();
}
});
它對我來說很好,希望它可以幫助別人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.