0

開発マシン上のすべてのブラウザー(IE9、Firefox、Chrome、Opera、Safari)で正常に動作するWebアプリがあります。Webアプリをテストサーバーにデプロイすると、IEは特定のJavaScriptコンポーネント(Zoomify)でチョークを開始します。

1つのタブに開発者がホストするWebアプリを表示し、別のタブにテストサーバーのWebアプリを表示して、IE 9を開くことができます。これにより、開発者がホストするアプリのみが機能します。Webアプリのコードは、web.configを除いて、両方のマシンでまったく同じです。

開発ツールは、両方のサイトをにあるものとして表示しますBrowser Mode: IE9 Document Mode: IE9 standards

Zoomifyコンポーネントが次の行で失敗しています。

c.onreadystatechange=null

エラーあり:

SCRIPT13: Type mismatch

ここで何が起こっているのですか?IEは、Webアプリがホストされている場所に応じて、Javascriptの処理方法が異なるのはなぜですか?


アップデート

私は今、別のサーバーでテストしましたが、奇妙なことに、それは機能しています。この時点で、WebアプリがIIS 6でホストされている場合、JavaScriptファイルはIEで失敗します。

Operaにも同様の問題がありますが、エラーメッセージは表示されません。

Dev Machine
Windows 7
Web Server: Cassini
Status: Working

Test Server 1
Windows Server 2003
Web Server: IIS 6.0
Status: Not working

Test Server 2
Windows Server 2008
Web Server: IIS 7.0
Status: Working
4

3 に答える 3

0

私の推測では、2つの異なる環境間でアプリをデプロイする方法のパスの違いです...それは悪いJS参照を引き起こす可能性がありますテストサーバーなどで仮想ディレクトリを使用していますか?

于 2012-05-23T05:21:55.820 に答える
0

スクリプト要素でタイプを宣言していますか?それか、X-Content-Type-Optionsを指定するhttp応答ヘッダーがある場合:nosniff

ここで参照できます:http://blogs.msdn.com/b/ieinternals/archive/2010/09/27/ie9-beta-google-image-search-javascript-content-type-and-nosniff.aspx

于 2012-05-23T05:31:36.350 に答える
0

失敗したjavascript行c.onreadystatechange=nullは誤解を招くものでした。Zoomify javascriptコードをデバッグすることで、呼び出しスタックのさらに上位でエラーが生成されていることを確認できました。

Zoomifyコンポーネントは、表示用の画像をダウンロードしようとしましたが、IEがXMLHttpRequestオブジェクトに対するクロスドメイン呼び出しをサポートしていないために失敗していました。IEは、オブジェクトを使用したクロスドメイン呼び出しをサポートしXDomainRequestます。ただし、Zoomifyコンポーネントはのサポートを提供していませんXDomainRequest。Opera11はクロスドメインコールもサポートしていません。

IEとOperaの問題に対する私の回避策は、クロスドメイン呼び出しを使用せず、Webアプリと同じドメインのURLを介して画像リソースを利用できるようにすることでした。

于 2012-05-24T04:08:03.200 に答える