簡體   English   中英

在發布模式下運行Android Cordova應用程序時,Ajax調用失敗

[英]Ajax calls fail when running Android Cordova app in Release mode

在Android上以發布模式運行應用程序時,AJAX調用失敗(適用於iOS)。 這是我在Chrome開發工具中看到的錯誤(確實是警告):

顯示臨時標題

Request URL:https://server.com/api/index.php?ticket=ST-111111-ABCDEFG-cas

Request Headers
Provisional headers are shown
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Origin:file://
User-Agent:Mozilla/5.0 (Linux; Android 6.0; Google Nexus 5 - 6.0.0 - API 23 - 1080x1920 Build/MRA58K) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/40.0.0.0 Mobile Safari/537.36
Query String Parametersview sourceview URL encoded
ticket:ST-111111-ABCDEFG-cas

Form Dataview sourceview URL encoded
request:{"param1":"val1","param2":"val2"}

調試模式下一切正常。 我去年發布的Android版本仍然可以正常運行。 所以它可能與新版Cordova有關。 這是我的工具版本:

  • 節點版本:v4.4.3
  • Cordova版本:6.2.0
  • cordova-android@5.1.1
  • Android SDK最新

我確實在config.xml中設置了這些設置:

<allow-navigation href="*" />
<access origin="*" />
<allow-intent href="*" />

我正在使用白名單插件:

<plugin name="cordova-plugin-whitelist" spec="1" />

我還在index.html文件中設置了這個元:

<meta http-equiv="Content-Security-Policy" content="default-src *; img-src 'self' data:; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">

我忘了設置其他Cordova設置嗎?

僅供參考,我已經刪除並重新添加Android平台到我的項目,更新了我的所有插件,但我仍然得到相同的Ajax錯誤。

請幫忙。

有完全相同的問題。 $ .ajax在調試版上運行良好。 發布版本失敗,狀態碼為0.問題是一周SSL證書。 我將https更改為http,然后它也在發布中工作。 看到:

https://forum.ionicframework.com/t/cordova-plugin-whitelist-problem-only-in-release/43705/3

從API端api開發人員需要允許跨源頭。

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: CUSTOM_HEADERS);
header('Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS);

此外,當來自cordova或使用ajax的請求時,那里有ajax請求兩個調用:第一個調用是for選項,其中api只返回允許的頭和方法,在那之后是實際的api調用,調用api。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM