2017年11月29日水曜日

JSONが思うようにならない・・・

現場の端末にWEBサーバーを立てて、機器の状態を他の端末から閲覧できる様にしようと、GithubからBrobinさんのSimple C# web server and script processorを導入しました。

このサーバは、コンソールアプリとして動作するので、現場の端末にコピーするだけで、WEBサーバーが出来てしまう優れものです。さらに、C#スクリプトでサーバーサイドのプログラムが書けるので、動的なページも作れてしまいます。

しかし、テストをしていると、CSSやJavaScriptに対応していないことが分かったため少し改造、更にデータベースにもアクセス出来るようにしました。

これで最低限の機能は動かすことが出来ましたが、データベースで抽出したデータをグラフ化したいという欲が出て、WEB APIの様にJSONを返すスクリプトを作成しました。

これが、Internet Explore 11だとJSONのパースがちゃんと出来るのに、Chromeだとパースでエラーになってしまいます。デバッガでみるとレスポンスはちゃんと返っている様なので、Chromeが意地悪してみたいです。

何か回避策があると思うのですが、まだ発見出来ていません。

XAMPPをインストールして動かせれば簡単だと思うのですが、インストール権限が無いのでゴリゴリ頑張るしかないですね。

追記:

xmlHttpRequest.responseType に 'json'を指定していたので、レスポンスがすでにパースされていることに気付かず、更にパースしようとしていたのが原因でした。ChromeでもInternetExploreでも動作させるためには、responseTypeに’text’を指定して、レスポンスをJSON.parseする処置が必要でした。

0 件のコメント:

コメントを投稿