我在ColdFusion页面中有以下内容,在页面加载后为我们提取一些数据:
ajaxRequest#RowURnumber[I]#.open("POST", "/cfapps/include/scriptname.cfm?i=#RowNumber[I]#", true);
ajaxRequest#RowURnumber[I]#.send(null);
是否可以在我们网络中的其他服务器上托管此脚本并使用上述代码调用它?我尝试过使用http地址和UNC路径,但它们似乎不起作用。
非常感谢任何想法。
感谢。
答案 0 :(得分:2)
您不能简单地使用ajax访问除同一域以外的任何页面,即使是同一个网络。
对于您的解决方案,您将在您的域中使用代理页面, 从前端开始,您将对域中的此代理页面执行AJAX请求, 这将从该coldfusion页面获取内容并将其传递给前端。
$.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获取内容并将其返回。
答案 1 :(得分:1)
如果脚本位于不同的域,则浏览器的同源策略将阻止脚本运行。你可以通过一些方法来解决这个问题(JSONP,CORS)。 JSONP将是更向后兼容的解决方案。