2016年5月9日月曜日

jQuery.ajax()で200 OKなのにエラーとなる







今まで利用していたWEBページを、新たなサーバーに移すことになりました。
で、そのまま移せば動くだろうと高を括っていましたが、ログインの時にエラーが出て動きません。


いろいろと調べたところ、エラー内容としては、Cross Domainでエラーになっているようでした。
それまでのものはDojoで、CORSに対応しておらず、今更Dojo,,,というのもあるので、勉強がてらjQueryに移植してみました。


なんとかコーディングできるようになったのですが、RESTを送ると、HTTPのレスポンスは200でOKなのですが、エラーハンドラーが起動されます。
調べてみたところ、以下のようでした。
jquery ajax has a problem getting return value from ashx handler
jquery ajax call return 200, valid json, fires error event


うーん、、、という感じで、jQueryのXHRにusernameとpasswordプロパティを設定したところ、
errorThrown.messageには以下の反応が。


Access to restricted URI denied.


Error: “Access to restricted URI denied”
"Access to restricted URI denied"
Access to restricted URI denied" code: "1012




ちょっとお手上げ感だったのですが、ふと思いついて、デバッグのブラウザをFirefoxからChromeに、更にIEへと変更してみたところ、IEでは成功!!!


本番はIE環境ですが、Dojoバージョンがだめだったのですっかり無視していました。
Cross Domainのマルチブラウザ対応はまだまだこれからですが、まずは少しだけ勉強して、ほんの少しだけ前に進みました。









0 件のコメント:

コメントを投稿