【发布时间】:2014-04-22 06:07:03
【问题描述】:
我正在我的 angular/phonegap 应用程序中发出 $http.jsonp 请求。数据已成功传送到远程服务器,但我无法从角度应用程序中的成功函数获得响应。控制台告诉我“未定义成功”。
这是我的角度代码:
app.controller('mainControl' , function($scope , $http){
$scope.credentials = {username: '' , password: ''};
$scope.login = function(){
console.log($scope);
var url = "http://127.0.0.1:3000/endpoint?callback=JSON_CALLBACK";
var responsePromise = $http.jsonp(url, {params: {
username:$scope.credentials.username,
password:$scope.credentials.password
}});
responsePromise.success(function (data){
console.log(data);
})
}
})
我错过了定义成功的步骤吗?
【问题讨论】:
-
这并不能真正回答您的问题,但请记住 json/p 主要用于解决桌面浏览器中的跨域 xhr 问题。您在 PhoneGap 中没有该块。也许尝试直接请求并跳过 json/p?
-
据我所知,任何类型的跨域请求都需要 JSONP 或 CORS。我只是尝试在这个应用程序中发送没有 jsonp 的数据,但它没有到达服务器。
-
在 桌面 浏览器上需要 JSON/P 或 CORS。 PhoneGap 专门允许您在不使用它的情况下制作 XHR。
-
任何文档?你说的是白名单吗?看起来这可能允许 phonegap 应用程序从列入白名单的 url 接收数据,但我不明白这将如何允许 phonegap 将数据发送到远程服务器。
-
是的,白名单,它适用于两种方式 - 执行 XHR GET 或 POST。