jQuery の ajax 関数を使用して、クロス ドメインの URL にアクセスしています。URL は json を返します。私はこれで発見段階にいますが、json 値に複数の「"」文字列が含まれているため、json eval がエラーをスローし、クライアント側スクリプトの実行を停止していると思います。私が得るエラーは「未終了の文字列リテラル」です。返された json をローカル div に入れてハードコーディングし、「"」を削除すると、文字列 (およびいくつかの非表示の特殊文字) を使用すると、json を正常に評価できます。回避策であろうと、コードの修正であろうと、URL から json を取得し、有効な json オブジェクトとしてクライアント側の JavaScript に保存するにはどうすればよいですか?
私の現在のコード。定義された関数 (success、complete、error、dataFilter) のいずれも実行されません:
$(function() {
$.ajax({
url: "http://www.codemash.org/rest/sessions.json?format=jsonp&callback=?",
dataType: "jsonp",
success: successFunc,
complete: completeFunc,
error: errorFunc,
dataFilter: dataFilterFunc
});
});
function successFunc() { console.log('successFunc(). enter.'); }
function completeFunc() { console.log('complete(). enter.'); }
function errorFunc() { console.log('errorFunc(). enter.'); }
function dataFilterFunc(data, type) {
data.replace(/\W/g, ' ');
return data;
}