1

我想使用跨域 AJAX 请求获取 CSV。我正在使用 jquery。

我知道我们可以使用 JSONP 来进行跨域 ajax 请求,但在这里我必须获取 CSV 而不是 JSON。

它是一个 Intranet 站点,需要登录,所以我不能使用 YQL。

有没有其他办法。下面是我的代码

        $.ajax({
        url: 'http://si-dtp-219:3333/WS/WS/dshbrdData?reportname=Svt',
        dataType : 'text',
        callback : callbackFunction,
        crossDomain : true,
        type: 'GET',
        timeout: 50000,
        success: function(res) {
            callbackFunction(JSON.stringify(res));
        },
        complete: callbackFunction,
         error: function(x, t, m) {
            if(t==="timeout") {
                alert("got timeout");
            } else {
                console.log(x);
                console.log(t);
                console.log(m);
            }
        }


    });
4

2 回答 2

1

对于我们的 Intranet 站点,我们经常使用代理脚本来处理这个问题。也就是说,您在 Intranet 中编写一个代表您发出请求的脚本。如果您使用的是 PHP,它可能很简单:

<?php
echo file_get_contents("whatever_url");
?>

然后在您的 Javascript 应用程序中,您只需对域内的此页面进行 AJAX 调用。这样就完全没有跨域问题(来自客户端的请求是对其域内的页面,服务器端请求对其域没有限制)。

于 2012-08-17T13:24:27.593 回答
0

好吧,您仍然可以使用 JSONPish 调用。您应该做的是在您的 URL 中添加一个脚本标签,该标签为该值分配一个变量,而不是对该数据执行您想要的操作。您应该使用纯 JS 而不是 jQuery,因为它需要 JSON 格式。

http://devlog.info/2010/03/10/cross-domain-ajax/

于 2012-08-17T13:55:37.290 回答