尝试阅读跨域csv文件:
remote_url = “http://www.example.com/buglist.cgi?bug_status=NEW&columnlist=bug_id%2Cshort_desc&query_format=advanced&ctype=csv";
$.ajax({
url:remote_url,
type:"get",
cache: false,
dataType: "jsonp",
success:function(data){
console.log(data);
},
error: function(data){
console.log(data);
}
});
虽然从服务器获得200状态,但它总是进入错误回调处理程序并记录JavaScript语法错误:
SyntaxError:missing;在声明6230之前,“这是一个”“简短描述”“,等等等等等等。
我的CSV文件有两列“bug_id”和“short_desc”,其中包含以下值:
bug_id = 6230
short_desc = this is a "short description", blah blah blah..
我知道错误是因为描述中的双引号,但我不知道解决方案。我尝试使用“YQL”将CSV转换为JSON,但结果返回null
,可能是因为错误。
答案 0 :(得分:0)
JSONP技术希望响应是JavaScript。这就是您收到JavaScript错误的原因;它正在尝试将CSV内容作为JavaScript执行。
JSONP的工作原理是在服务器中定义一个回调函数,添加一个带有URL的脚本标记,告诉服务器它将调用哪个函数,然后服务器用JavaScript调用该函数调用该函数作为参数。
换句话说,目标网址必须支持此协议。您不能只使用JSONP任何任意请求。
您可能需要使用其他技术来获取数据,例如向服务器发出HTTP请求的同域代理。如果您能够更改example.com
处的代码,则可以选择更多选项。