0

我在 ColdFusion 页面中有以下内容,一旦页面加载,它就会为我们提取一些数据:

ajaxRequest#RowURnumber[I]#.open("POST", "/cfapps/include/scriptname.cfm?i=#RowNumber[I]#", true);
ajaxRequest#RowURnumber[I]#.send(null); 

是否可以在我们网络中的不同服务器上托管此脚本并使用上述代码调用它?我曾尝试使用 http 地址和 UNC 路径,但它们似乎不起作用。

任何想法将不胜感激。

谢谢。

4

2 回答 2

2

您不能简单地使用 ajax 访问同一域以外的任何页面,即使是同一网络。

对于您的解决方案,您将在您的域中使用代理页面,从前端您将对域中的此代理页面执行 AJAX 请求,这将从该冷融合页面获取内容并将其传递到前端。

$.ajax({
  type:'GET',
  url :'url to a proxy page in server A',
  success: function (){//...}
});

在服务器 A 中,您将有一个代理页面说 proxy.cfm

<cfhttp url="http://www.serverB.com/the actual page..." />
<cfset html = cfhttp.FileContent />
<cfoutput>#html#</cfoutput>

因此,您的 AJAX 将要求服务器 A 从服务器 B 获取内容并将其返回。

于 2012-05-31T03:17:31.063 回答
1

如果脚本位于不同的域,则浏览器的同源策略将阻止脚本运行。您可以查看一些解决方法(JSONP、CORS)。JSONP 将是更向后兼容的解决方案。

于 2012-05-31T03:14:03.323 回答