質問: サーバーに設置しているPHPにajaxでアクセスして、jsonでデータを受け取ることをしているのですが、iosのsafariのみうまくいきません。 fail内容を見ると XMLHttpRequest.status : 0 textStatus : error errorThrown.message : 'the operation timed out' とalertで表示されているので、 ``` jQuery.ajax({ async : false, url : 'PHP' , type : 'POST', dataType : "json", timeout: 0, cache: false, data : 'p=aaa&q=bbb }) ``` とtimeoutやcacheの指定をしてもダメでした。 PHP側の処理はjson_encode($data);でjsonで返していて、$dataの中にも値があることは確認してます。 pcのchromeやAndroidのchromeは問題ないく動作しjsonの値が受け取れているのですが、原因となるようなことはないでしょうか?
回答: 2019/4時点でiosのsafariがajaxのtimeoutの設定が無効化しているようで、設定を短くしても、長くしても、10秒ほどで自動的に処理を中断するようでした。 PHP側は入力したURLの存在確認のためfile_get_contentsを利用していたのですが、特定のURLでのレスポンスが10秒以上かかることがわかりました。(サイトのスクレイピング対策?) curlに変更することで一旦回避することができました。