我正在使用jQuery的ajax函数来访问跨域url.该网址将返回json.我正处于发现阶段,但我想,因为json值包含几个’& quot’字符串,json eval会抛出错误并停止执行我的客户端脚本.我得到的错误是“未终止的字符串文字”.我知道如果我将返回的json硬编码放在本地div中并删除’& quot;’字符串(和几个隐藏的特殊字符),我可以成功地获得json到eval.
无论是通过解决方法还是通过修改我的代码,我可以做些什么来从URL获取json并将其存储在我的客户端javascript中作为有效的json对象?
我目前的代码.没有定义的函数(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;
}
最佳答案
问题是JSONP服务,它完全消除了回调参数.
JSONP响应只是一个使用callback get参数作为函数名的函数调用:
如果您查看某些JSONP服务的响应,它应该是这样的:
http://somesite.com/jsonp?callback=myCallback
会回来:
myCallback({/*json*/});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。