2012-01-25 1 views
2

JSONに失敗した - >応答が戻ってJSONの解析は、IE8

{"msg":"<DIV><P>Unfortunately we were unable to process your application.</p><BR>Please upload a CV<BR></DIV>", "status":"error"} 

エラー

SCRIPT1015: Unterminated string constant

エラー

var data = $(this).contents().find('body').html();//I have console logged this and holds the above json as a string. 
data = jQuery.parseJSON(data);// problem is here. 

fの行を返さ何か理由があると思うのですが、それは.text().html()と反対の働きをしているからです.HTMLタグが付いているので、.html()を使用する必要があります。

提案がありますか?

+0

これはどのように機能しますか? ENTIREドキュメント(別名 'body')のhtmlを取得し、jsonのふりをしますか? –

+0

var dataは '$( 'iframe')です。contents.find( 'body').html();'文字列として上の 'json'を持ちます。ie8でコピーしても動作しません返された上記のjsonを貼り付け、 'data = jQuery.parseJSON( '"

...blabla
")'メソッドを実行します。 – Val

+0

これは、iframeがhtmlシェルの中にjsonを持っていることを前提としています。サーバーは何を吐き出すのですか?未加工のjson文字列ですか?それとも本当に ' {msg:.....}'を発送していますか? iframeにbodyタグがない場合、そのjquery find()を使用することはできません。 –

答えて

4

jsonの改行ですか?それが事実なら、それはあなたの誤りです。 data.replace('\n', ' ')のようなもので削除してみてください。

コメントは、から更新されました.Valは、IE8パーサーが実際にテストケースでボルキングしていたことを認識しました。元のjavascript JSONパーサーはそれをうまく処理しました。元のパーサーが必要な場合はhttps://github.com/douglascrockford/JSON-jsにあり、http://www.json.orgからリンクされています。

+0

nope、その新しい行ではありませんコピーと貼り付けの問題は、私は入れ替えを試みたが、いいえ... – Val

+0

btw、それはIE8で残っている作業は上質です。 – Val

+0

奇数あなたの正確なデータをそこにコピーして貼り付けて改行し、 'JSON.parse()'と '$ .parseJSON()'の両方をうまく処理します。それが正確なコードとデータだと確信していますか? –