2017-10-06 25 views
0

jsonデータの解析に奇妙なエラーが発生しました。文字列jQuery321040763556724467964_1507276501913??はポイントjQueryのjsonのjqueryでjquery解析エラーが発生しました

Uncaught SyntaxError: Unexpected token : 
at DOMEval (jquery.js:82) 
at Function.globalEval (jquery.js:346) 
at text script (jquery.js:9606) 
at ajaxConvert (jquery.js:8754) 
at done (jquery.js:9222) 
at XMLHttpRequest.<anonymous> (jquery.js:9514) 

とチョークとAjaxエラーコールバックを実行する時に、標準のAjaxリクエストに対するJSONレスポンス、中にいました。しかし、jsonが有効で、最後の2つの疑問符が削除されていれば楽しく完了します。

私は何のデータ型を供給しないと、手動で応答を解析し、コールバック何が起こっている地球上で

this.send_ajax = function(payload, cb_success, cb_failed) { 
    let r = { 
     url: '/ajax', 
     type: 'POST', 
     data: JSON.stringify(payload), 
     //dataType: 'json', // see nb5137 
     success: function(response) { 
      cb_success(JSON.parse(response)); 
     }, 
     error: cb_failed 
    } 
    $.ajax(r); 
} 

にそれを渡す代わりにdataType: 'json' を設定する場合、それはまた、(??で)完了?

備考への応答では、これはクロスドメインではありません。

+0

追加の文字列は、JSONではなくJSONPを受け取っているように見えるためです。 'dataType: 'jsonp'に変更し、' JSON.parse'呼び出しを削除してください。これはjQueryが既にあなたのために行っているためです。 –

+0

おそらく私はあなたを誤解しているかもしれませんが、奇妙な文字列はサーバーからのものです。それはjsonpではありません。 – havlock

+0

ここでドメイン間のリクエストを行っていますか?あなたが完全なjQuery AJAXリクエストを示していれば、多くの助けになります。見えないコードの問題を診断するのは難しいです。 –

答えて

0

別のドメインに要求されている場合は、dataType:jsonpを渡す必要があります。そうでない場合は、同じドメインの同じ原点リクエストに対してdataType:jsonを渡します。

+0

JSONPは同じドメイン要求に対しても引き続き動作し、CORSの問題を自動的に修正する魔法の弾丸ではありません。そのデータ形式でも動作するようにサーバーを構成する必要があります。 –

+0

ありがとうございますが、クロスドメインではありません – havlock

関連する問題