私は奇妙な問題に遭遇しています。
AJAX を使用してサーバーと通信しています。(私は Web アプリケーションを で実行していますlocalhost
)。サーバーは、たとえば、http://www.example.com
Same Origin Policy をバイパスするために、JSONP を使用しています。<script>
タグを動的に作成し、サーバーからデータを読み込みます。
ここまでは順調ですね。
次に、Web アプリケーションをこのサブドメインにアップロードすることにしました。http://m.example.com
それは私が狂ったエラーに遭遇したときです。ページが読み込まれる場合と読み込まれない場合があります。ロードされない場合、Firebug はDOCTYPE
エラーをスローします。
私はいくつかの調査を行い、このスタックオーバーフローの投稿に出くわしました: firebug returns syntax error in doctype?
このリンクの回答を引用:
これは通常、HTML ドキュメントをスクリプトとして読み込んでいるために発生します。
<script src=""></script>
これは多くの場合(つまり、現在の HTML ドキュメントを指す相対 URI)、または 404 エラーを指すスクリプトの 1 つによって引き起こされます。
かなり役立つもの。これらすべてに基づいて、上記のすべてから、サーバーの応答が遅い場合は常に<script>
タグのsrc
属性が null であると結論付けました。がスローされるため404 error
、DOCTYPE
Firebug でエラーが発生します。サーバーが迅速に応答するときはいつでも、問題はなく、すべて正常に動作しています。
この問題を解決するにはどうすればよいですか? 手動でタイムアウトなどを設定することもできますが、それは絶対確実でエレガントなソリューションではありません。
助けてくれる人はいますか?
編集:
ここにいくつかのコードがあります:
この関数は、script
タグを動的に作成するために使用されます。
function appendScriptToHead() {
var element = document.createElement("script");
element.src = 'http://www.example.com/?data&callback=callfunction';
document.getElementsByTagName("head")[0].appendChild(element)
}
このコールバック関数は、JSONP データを含む上記の URL が読み込まれたときに呼び出されます。
function callfunction(response) {
alert(response);
}