Roe*_*den 4 android angularjs cordova phonegap-build
我有一个Android应用程序,其中包含以下内容config.xml:
<access origin="*" />
Run Code Online (Sandbox Code Playgroud)
然后,我使用Angular开始向API端点发出请求,$http如下所示:
$http({
data: this._createTokenRequest(tenant, username, password),
method: 'POST',
headers: { Accept: 'application/json', 'Content-Type': 'application/json' },
timeout: 10000,
url: url + '/api/RequestToken'
}).catch(err => {
alert(err.message || err);
alert(JSON.stringify(err));
}).then(response => {
alert(response);
});
Run Code Online (Sandbox Code Playgroud)
在3.7.0响应处理程序中将被调用.自升级到4.0.2(<preference name="phonegap-version" value="cli-5.1.1" />根据http://phonegap.com/blog/2015/06/16/phonegap-updated-on-build/使用PhoneGap Build设置)时,将catch调用该404 Not Found错误.
可能是什么导致了这个?我在更改日志中看不到相关条目(https://github.com/apache/cordova-android/blob/4.0.2/RELEASENOTES.md).
切换到时cli-5.1.1,您将切换到4.0.xAndroid版本.正如@laughingpine在评论中指出的那样,白名单机制已经改变.之前,您可以使用它<access origin="*" />来获取对所有域的访问权限.这不再适用.
现在你需要cordova-plugin-whitelist(https://github.com/apache/cordova-plugin-whitelist).有关详细信息,请参阅文档.早期通配符的粗略等价物<allow-navigation href="*" />是新机制.
要在PhoneGap Build下构建(因此称为PGB),您需要添加插件.由于插件位于npm(节点包管理器)下,因此您可以在cordova-plugin-whitelist名称(https://www.npmjs.com/package/cordova-plugin-whitelist)下找到最新版本.PGB可以npm使用以下表示法构建插件:
<gap:plugin name="cordova-plugin-whitelist" version="1.0.0" source="npm" />
Run Code Online (Sandbox Code Playgroud)
现在PGB将正确构建,您的白名单将像以前一样工作.
| 归档时间: |
|
| 查看次数: |
1013 次 |
| 最近记录: |