Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 跨域ajax请求jquery获取CSV_Javascript_Ajax_Jquery_Csv - Fatal编程技术网

Javascript 跨域ajax请求jquery获取CSV

Javascript 跨域ajax请求jquery获取CSV,javascript,ajax,jquery,csv,Javascript,Ajax,Jquery,Csv,我想使用跨域AJAX请求获取CSV。我正在使用jquery 我知道我们可以使用JSONP来处理跨域ajax请求,但这里我必须获取CSV而不是JSON 这是一个内部网站,需要登录,所以我不能使用YQL 还有别的办法吗。下面是我的代码 $.ajax({ url: 'http://si-dtp-219:3333/WS/WS/dshbrdData?reportname=Svt', dataType : 'text', callback :

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

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

这是一个内部网站,需要登录,所以我不能使用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);
            }
        }


    });

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

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


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

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

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


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

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


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


如果res只是csv文件的内容,有什么问题吗?您使用的是什么服务器端语言?@drim:-这是一个跨域请求,所以我不需要担心服务器端语言。我只需要使用javascript点击url并获取内容。如果我复制响应内容并将其保存到本地,并发出像url:'local.txt'这样的ajax请求,它的工作非常好。CSV不是JavaScript的有效子集,因此JSONP技术将无法工作,除非您将文件保存在一个JS字符串中,并允许将其包装在回调函数中。如果不可能,您将需要使用代理。如果res只是csv文件的内容,有什么问题?您使用的是什么服务器端语言?@drim:-这是一个跨域请求,所以我不需要担心服务器端语言。我只需要使用javascript点击url并获取内容。如果我复制响应内容并将其保存到本地,并发出像url:'local.txt'这样的ajax请求,它的工作非常好。CSV不是JavaScript的有效子集,因此JSONP技术将无法工作,除非您将文件保存在一个JS字符串中,并允许将其包装在回调函数中。如果不可能,您将需要使用代理。我不能使用任何服务器端脚本语言。。我必须使用AJAX获取数据。我相信这意味着你运气不好。@Anupish从技术上讲这仍然是AJAX,你只是对自己的页面而不是原始页面发出请求,并让代理完成请求的第二部分。如果您无法控制自己的服务器端脚本,那么这将更加复杂,而且我不确定是否有令人满意的解决方案。如果您根本无法使用任何服务器代码,有两种方法可以使用AJAX获取跨源数据。1.这依赖于JSON格式的数据-CSV将不起作用!2.数据所在的服务器必须支持。如果服务器已经支持CORS,您就可以回家了。如果没有,请尝试询问服务器所有者是否可以启用它。我不能使用任何服务器端脚本语言。。我必须使用AJAX获取数据。我相信这意味着你运气不好。@Anupish从技术上讲这仍然是AJAX,你只是对自己的页面而不是原始页面发出请求,并让代理完成请求的第二部分。如果您无法控制自己的服务器端脚本,那么这将更加复杂,而且我不确定是否有令人满意的解决方案。如果您根本无法使用任何服务器代码,有两种方法可以使用AJAX获取跨源数据。1.这依赖于JSON格式的数据-CSV将不起作用!2.数据所在的服务器必须支持。如果服务器已经支持CORS,您就可以回家了。如果没有,请尝试询问服务器的所有者是否可以启用它。