在我的javacript函数中,我将此称为ajax。它工作正常,但仅当我从firebird服务器访问网页时才有效。我的testing服务器上有相同的代码。Ajax要求下载一些文件,但是只有firebird服务器才向我们的客户端提供其IP注册,以便能够在那里进行scp。如果我从测试服务器访问php文件,则需要执行相同的操作。所有服务器都在Intranet内。
firebird
testing
text
ajax呼叫:
url = "https://firebird"+path+"/tools.php?"; jQuery.ajax({ type: 'get', dataType: 'text', url: url, data: {database: database_name, what: 'download', files: files, t: Math.random() }, success: function(data, textStatus){ document.getElementById("downloading").innerHTML+=data; } });
我的小型Web应用程序还原了数据库,因此可以对它们进行测试。现在,我想对其进行增强,以便可以连接到我们的客户并下载特定的备份。我们的客户只允许firebird服务器连接到他们的网络。但是我有自己的服务器专用于testing。因此,每次我要下载数据库时,都需要连接firebird。我的Web应用程序的源以及包含所有备份的文件夹都安装在服务器firebird和上的相同位置testing。现在,我的解决方案(用于下载)有效,但只能从firebird中获得。我基本上只工作在testing服务器上。
我打了两个ajax电话。一种是纯jQuery调用(我想我可以将任何解决方案都应用到此方法上),另一种是jsTree的ajax调用。我为此提出了一个新问题。在我看来,我喜欢I have to@zzzz的选项b)。
I have to
您有以下选择
a)您使用jsonp类型作为数据类型,但这涉及在服务器端进行更改以将数据作为json而不是txt传递回。
{ "text":<your current text json encoded> }
在您的js端,您可以将其用作response.text; 话虽这么说,如果您正在从其他域的sm上获取文本文件,那么我不确定更改代码有多么容易。
b)另一个选择是您在服务器上编写一个处理程序/端点,即在您的域内,该域将向该第三个域发出HTTP请求,以获取文件,然后将文件发送回客户端,并且现在,您的客户端与仅域,您可以控制所有内容。因为大多数年份的问题都是基于红宝石的,所以这里有一个例子:
req = Net::HTTP.get_response(URI.parse('http://www.domain.com/coupons.txt')) @play = req.body
您可以在此处找到有关此内容的更多详细信息。
希望这可以帮助。