当前位置: 首页 > 面试题库 >

接收.csv文件作为ajax成功函数中的数据

林修真
2023-03-14
问题内容

请考虑以下javascript:

$.ajax({
    url:'http://ichart.finance.yahoo.com/table.csv?s=GS&a=00&b=1&c=2010&d=08&e=3&f=2012&g=d&ignore=.csv',
    type:'get',
    dataType:'jsonp',
    success:function(data){
        alert(data);
    }
})

URL返回一个.csv文件,但是我指定了jsonp数据类型,因为这是一个跨域的ajax请求。没有该参数,我会收到“不允许原点”错误。

由于我指定了jsonp数据类型,因此.csv文件不是JSON格式,所以ajax函数会引发错误。但是在开发控制台中,我可以看到浏览器确实收到了一个连贯的.csv文件。因此,我知道我已经成功接收了CSV文件。我认为应该可以,但是我不确定如何正确将这个csv文件接收到我的ajax函数中?

当然,如果我可以使此URL返回正确格式的JSON字符串,那将是最好的选择,但是我不确定是否可以这样做。

这是您可以尝试使用的小提琴,您必须打开开发控制台才能看到该错误:http :
//jsfiddle.net/92uJ4/3/

任何帮助是极大的赞赏。

提姆


问题答案:

不幸的是,跨域限制意味着这根本行不通。该系统是专门构建的,因此您不能使用AJAX拉取任意跨域内容。没有任何形式的预解析方法可以将要获取的非JSONP数据转换为实际的JSONP数据(因为这会超出限制的要点)。

您将不得不打电话给从Yahoo!提取数据的本地服务器。并将其发送到您的AJAX请求,或者找到某种类型的服务,该服务将从任意URL中提取并以JSONP形式返回数据。碰巧的是,雅虎!提供这样的服务:YQL(雅虎查询语言)。有关更多详细信息,请参见此链接。

要完成所需的操作,请使用以下小提琴中的代码:http :
//jsfiddle.net/c5TeM/1/

function get_url(remote_url) {
    $.ajax({
        url: "http://query.yahooapis.com/v1/public/yql?"+
"q=select%20*%20from%20html%20where%20url%3D%22"+
encodeURIComponent(remote_url)+
"%22&format=json",
        type: 'get',
        dataType: 'jsonp',
        success: function(data) {
            alert(data.query.results.body.p);
        },
        error: function(jqXHR, textStatus, errorThrow){
            alert(jqXHR['responseText']);
        }
    })
}


 类似资料:
  • 问题内容: 如何从匿名成功函数中更新returnHtml变量? 问题答案: 那是错误的方法。AJAX中的第一个A是异步的。该函数在AJAX调用返回之前返回(或者至少可以返回)。因此,这不是范围问题。这是订购的问题。只有两个选项: 使用选项使AJAX调用同步( 不推荐 );要么 改变思维方式。代替从函数返回HTML,您需要传递一个回调,以在AJAX调用成功时被调用。 作为(2)的示例:

  • 在react组件挂载之前,我执行ajax请求以了解用户是否登录。 它应该在响应返回状态代码200时设置状态。 我是否错误地使用了? 编辑01

  • 问题内容: 我的AJAX中有一个成功函数,该函数从python脚本返回响应文本,该脚本可以是“ SUCCESS”或“ EMPTY”。现在,我想在成功函数中放置一个if循环,但是if循环不起作用。我从python脚本中获取了正确的数据,因为我的警报语句可以正常工作并打印“ SUCCESS”。但是它不会进入ifloop 我已经尝试了很多方法,但是控件没有进入if循环,有人可以告诉我我在做什么错: 问题

  • 问题内容: 在我的前端JavaScript应用程序中,我发出了ajax请求以从服务器获取数据。一旦获得数据,我想将该信息返回给视图。 我该怎么做? 问题答案: 而不是从:返回来传递给函数。

  • 问题内容: 我正在使用jQuery $ .ajax()函数。我已经将其放入父函数中,该函数将一些值传递给ajax函数。我想做的是有一个用户定义的回调函数,该函数获取从ajax成功函数传入的数据参数。 这是我当时想的可行方法,但并非如此: 然后,我希望能够调用该函数,并传入我的自定义函数,以便可以使用该函数内部的成功函数数据: 我希望这与以下内容相同: 问题答案: 对我来说很好用:

  • 问题内容: 因此,我正在一个需要调用服务器并返回zip文件的网站上工作,问题是我不确定自己是否做对了所有事情。该代码看起来像这样: 如您所见,我需要使用响应中的字节数组来填充文件,我该怎么做? 问题答案: 一种利用的方法; 检查element是否具有属性,如果为true,则将property 设置为; 否则,使用带参数的响应 使用jQuery版本叉的 只需下载就可以了 您可以使用元素,属性 或者使