gpt4 book ai didi

javascript - Android Phonegap 3 webapp 白名单不起作用

转载 作者:行者123 更新时间:2023-11-29 21:22:36 25 4
gpt4 key购买 nike

我有一个 phonegap android 应用程序,它试图从外部服务器获取数据:

服务器是 .net WebAPI - 并通过 JSONP 使用通信。相同的代码/服务器在 iOS 中与 phonegap 2.7 一起工作。对于 Android,我使用的是 phonegap 3.1。我已经仔细检查了 URL 以确保它是正确的。我的 config.xml 文件中也有以下行。

<access origin="*" subdomains="true" />

请求详情在这里:

Request URL:http://XXXXXXXXXXXX.com/server/api/messagetypeopt/1?callback=jQuery17209047717128414661_1386902222072&_=1386902252817
Request Method:GET
Status Code:404 Not Found (from cache)
Request Headersview source
Accept:*/*
User-Agent:Mozilla/5.0 (Linux; Android 4.4; sdk Build/KRT16L) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36
Query String Parametersview sourceview URL encoded
callback:jQuery17209047717128414661_1386902222072
_:1386902252817

javascript请求代码为

$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
$.mobile.loading('show');

// enableFrontPageButtons(1)
enableButtons(0);
console.log('about to get message types');
try {
$.ajax({
//url: 'http://localhost:8956/api/messagetypeopt/' + SENDER_ID ,
url: SERVER + '/api/messagetypeopt/' + SENDER_ID ,
type: 'GET',
dataType: 'jsonp',
jsonp: 'callback',
crossDomain: true,
async: false,
success: function (data) {
//alert('1');
localStorage.setItem("rawMessageTypes", JSON.stringify(data.branches));
Sender.updateBranchesData(data);
Sender.updateSenderData(data);
//alert('2');
setupBranches(data.branches);
setMessageTypesDB(data.branches); // store in local database.
updateMessageTypes(data.branches);
WriteMessageList( getMessageDataForBranch(JSON.parse(localStorage.getItem("rawMessageTypes"))));
//alert('3');
// save sender data and branch data
enableButtons(1);
//$('#libName').val(ConfigData.SENDER_NAME);
changeTheBranch(CURRENT_BRANCH);
// alert('4');
//alert('Update Complete');
$('messagetypepopuptext').text('Update Complete');
$('messagetypepopup').popup();

},
statusCode: {
500: function() {
alert("An incorrect request went to the server, check your UserID? ");
enableButtons(1);
$.mobile.changePage('#pageSetup', {changeHash: false});
} ,
400: function() {
alert("An incorrect request went to the server, check your UserID? ");
enableButtons(1);
$.mobile.changePage('#pageSetup', {changeHash: false});
}
},
error: function (x, y, z) {
//alert('There was an error getting data from the server');
enableButtons(0);
$.mobile.changePage('#pageSetup', {changeHash: false});
},
complete: function (a, b) {
//alert('complete:' + a + '\n' + b);
$.mobile.loading('hide');
}
});

我真的坚持这个 - 所以我真的需要一些帮助。谢谢 :)

最佳答案

我和你在同一个页面。它在 iOS7 甚至 Android 2.3 虚拟机上完美运行,但在 Android 4.0.3 上不起作用我使用的是 Phonegap 3.1

--- 编辑 ---

我有多个用于白名单的站点,我以不同的方式放置它们

<access origin="*://site.com" subdomains="true"/>
<access origin="*://site.com/*" subdomains="true"/>
<access origin="*://site.com/something/*" subdomains="true"/>
<access origin="https://site.com/" subdomains="true"/>

因为我使用的是 AngularJS,所以我不知道如何在你的代码中帮助你,但是一旦我使用 jquery 进行测试并且我没有你的支持 CORS 代码。我还添加了

<access origin="..." subdomains="true"/>

在位于 res/xml/config.xml 的 config.xml 上。

关于javascript - Android Phonegap 3 webapp 白名单不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20558534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com