[英]Phonegap + Sencha + Android : ajax request with a basic access authentication failled
我伙計,
我正在研究Phonegap應用程序和Sencha框架。
我嘗試訪問受保護的服務器但使用Android驗證失敗(但不是iOS)。 我使用下面的代碼:
Ext.Ajax.request({
url:"http://user:password@api.website.fr/query.json",
method: 'GET',
// I tried to send the header directly but it didn't work too
headers: {
"Authorization": "Basic s2dh3qs76jd2hqjsdh=="
},
success: function (result, request) {
alert(result);
},
failure: function ( result, request) {
for(var key in result)
alert(result[key]);
}
});
錯誤消息告訴我需要HTTP摘要...
想知道:
alert(result[key])
謝謝你們,你們都搖滾!
我同意@Mariano。 為什么你不能在瀏覽器中嘗試它,然后部署為帶有phonegap的應用程序。 可以通過此命令從終端啟動谷歌瀏覽器來解決跨域問題google-chrome --args --disable-web-security
有關更多信息,請查看此鏈接
http://www.senchatouchbits.com/7/cross-domain-ajax-requests.html
我在驗證我的ajax請求時遇到了無窮無盡的麻煩,但我終於讓它工作了。 我得到了網絡的基本base64_encode算法。 然后您需要調整標題,如下所示
Ext.Ajax.request({
url:'yourwebserviceurl',
method:'GET',
headers: {
Authorization: 'Basic '+ base64_encode(form.username+':'+form.password)
},
success: function(response){
//Ext.Msg.alert(response.responseXML);
console.log(response.responseText);
},
failure: function(response){
//console.log('Success response: ' + response.responseText);
Ext.Msg.alert('b');
}
});
這適用於基本肥皂服務!
我有同樣的問題......你能解決它嗎?
順便說一句......你必須像這樣設置用戶名和密碼:
Ext.Ajax.request({
url:"http://api.website.fr/query.json",
method: 'GET',
username : 'user',
password : 'password',
// I tried to send the header directly but it didn't work too
headers: {
"Authorization": "Basic s2dh3qs76jd2hqjsdh=="
},
success: function (result, request) {
alert(result);
},
failure: function ( result, request) {
for(var key in result)
alert(result[key]);
}
});
使用console.log來查看js對象的內容,你總是必須在瀏覽器中使用像Firebug這樣的debbuger來嘗試應用程序,以便更輕松地檢測問題。
對於Android中的問題,請確保此行位於phonegap app清單文件中:<uses-permission android:name =“android.permission.INTERNET”> </ uses- permission>
祝好運!
這是跨域請求問題。 您必須修改代碼才能創建JSONP請求
Ext.util.JSONP.request({
url: 'http://url',
callbackKey: 'callback',
callbackName: 'callback',
model: 'Model',
params: {},
callback: function(result){
var shows = result.data;
},
});
請記住,您還必須適應服務器端,以便它的響應是一個jsonp結果(回調)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.