質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

Q&A

解決済

1回答

2967閲覧

AndroidだけローカルHTML環境下でのjQueryのAjaxが乗り換えたサーバではエラーになる

hakase

総合スコア107

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

0グッド

0クリップ

投稿2019/05/01 12:07

編集2019/05/02 03:50

こんにちは。
WebViewを用いたHTML+CSS+JavaScriptのハイブリッドアプリを開発しています。
HTMLはアプリ上にあるので、普通はAjaxは使えません。
サーバの.htaccessに

Header append Access-Control-Allow-Origin: * Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"

を記述すると使えるようになります。
これまではさくらのレンタルサーバを使っていて、問題なく使えてました。

サーバをさくらのVPS(CentOS6,Apache httpd)に移したところ、
iPhoneとPCのローカル環境は問題無いのですが、Android(OS依存性は未確認です。6.0は駄目でした)だけエラーになってしまいました。

$.ajaxのエラーリターンは、ステータスが0、テキストがerror、メッセージがFailed to execute 'send' on 'XMLHttpRequest':Failed to load 'https://xxx/test.php'です。

AndroidのMonacaデバッガーでテストしてみました。乗り換えたサーバでもOKでした。Androidのコーディングの問題ですね。

AndroidのManifestに追記をしてhttp通信も許可にして、http通信で行ったら、うまく行きました。

例えSSL通信であっても信頼できない証明書の場合には通信エラーになるという記事を見つけました。ただレンタルサーバのSSLも同じサーバ会社提供の無料SSL(Let’s Encrypt)を使っていました。
Android 7.0からの仕様ということなのですが、もしかしたらMonacaデバッガーのSDKは古いのかも知れません。

Let’s EncryptはAndoid7.0でいうところの信頼できない証明書なのでしょうか?
で調べてみました。
https://qiita.com/aquiq/items/db4eb8c7106f109819f0
にあるようにDNS認証すれば良いようですでしたが、
わたしの行った、certbot-autoを使った方法はHTTP認証という認証を使っていましたので
認証の問題では無さそうです。行き詰まってしまいました。別のタイトルで質問を立ち上げます。
ありがとうございました。

Andoidのソースは

Java

1 wv=(WebView)findViewById(R.id.webViewam); 2 WebSettings webSettings = wv.getSettings(); 3 Class<?> clazz = webSettings.getClass(); 4 Method method = null; 5 try { 6 method = clazz.getMethod("setAllowUniversalAccessFromFileURLs", boolean.class); 7 } catch (NoSuchMethodException e) { 8 e.printStackTrace(); 9 } 10 if (method != null) { 11 try { 12 method.invoke(webSettings, true); 13 } catch (Exception e) { 14 e.printStackTrace(); 15 } 16 } 17 webSettings.setJavaScriptEnabled(true); 18 wv.setWebChromeClient(new MyWebChromeClient()); 19 wv.setWebViewClient(new MyWebViewClient()); 20 wv.addJavascriptInterface(new JsClass(), "android"); 21 wv.loadUrl("file:///android_asset/index.html");

httpd.confは

httpd.conf

1<Directory "/var/www/html"> 2 Options -Indexes FollowSymLinks 3 AllowOverride All 4 Order allow,deny 5 Allow from all 6</Directory>

です。困っています。お助け下さい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/05/01 12:16

タイトルがとてもわかりにくい
hakase

2019/05/01 12:18

ご指摘ありがとうございます。
退会済みユーザー

退会済みユーザー

2019/05/01 12:41

移設したサーバーでのaccess_logやerror_logはチェックしましたか? 不審な箇所があれば質問文中に加えてください。
hakase

2019/05/01 20:46

承知しました。
hakase

2019/05/01 21:35

Monacaデバッガーがではうまくいきました。Androidのコーディングの問題みたいです。ただMonacaデバッガーからのAjaxアクセスがログに出ていないんです。これはまた時間があったら追ってみたいと思います。
hakase

2019/05/02 00:59

いろいろ追記しました。何かアドバイスがあったらお願いいたします。
hakase

2019/05/02 01:26

もう少しというところまで来ました。追記があります。がんばります。
hakase

2019/05/02 03:51

別のタイトルで質問します。ありがとうございました。
guest

回答1

0

自己解決

原因を突き止めていくと別のタイトルで質問した方が良いというところに行き着きました。試行錯誤の状況は本文をお読みください。ありがとうございました。

投稿2019/05/02 03:52

hakase

総合スコア107

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問