提问者:小点点

科尔多瓦Android应用程序无法发布403禁止


我有一个接受post请求的Java REST服务。我的打包为Android应用程序的Cordova无法发出post请求。

我得到一个403禁止的错误。我知道很多人都提出了很多建议。所有这些我都试过了,但还是解决不了。任何帮助都会大有帮助。

我的Cordova配置文件如下所示。

<content src="index.html" />
<plugin name="cordova-plugin-whitelist" spec="1" />    
    <access origin="*" />
<access uri="*" subdomains="true" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
    <allow-intent href="*" />
</platform>
<platform name="ios">
    <allow-intent href="itms:*" />
    <allow-intent href="itms-apps:*" />
</platform>

我试图根据某人的建议删除。但仍然不起作用。


共2个答案

匿名用户

您在Ajax中使用cookie吗?

var request = new XMLHttpRequest(),
    data = {name:'name'},
    url = 'https://example.com';
request.setRequestHeader("cookieItem1", "cookieContent1");
request.setRequestHeader("cookieItem2", "cookieContent2");
request.open("POST", url);
request.send(JSON.stringify(data));

我试图解决这个问题。

匿名用户

以防万一有人碰到这个。问题可能是由于CORS问题。通常,cordova应用程序中的http调用设置了origin=file://header。某些web服务器可能具有安全过滤器以防止安全攻击。

最简单的方法是确保您正在执行http请求的服务器在原始标头具有file://value时不会阻止它们。请参见此处

否则,您需要在发出请求之前找到一种将标头更改为其他内容的方法。