最近我发现了以下声明:“全部 对XML数据文件的Ajax调用必须来自同一个域,否则请求将失败。“,任何人都可以帮助我理解这一点,因为我无法从中获取很多东西。
答案 0 :(得分:0)
假设您的网站(包括启动AJAX的Javascript)位于site1.com
。
AJAX将请求名为file.xml
的文件,其地址为site2.com/file.xml
。
此请求site1.com
---> site2.com
使相同的原始政策失效,因为2位于不同的域名。
绕道而行?
site.com/getMeThatAwesomeFile
上请求一个URL,该URL执行一些服务器端代码以获取文件的内容并将其返回给您site2.com/file.xml
实际解析为您域中的内容。答案 1 :(得分:0)
您可以使用JSONP,但有一些限制(只允许'GET'动词,数据应放在服务器的函数内)。 JSONP首先不是ajax调用,它下载脚本并调用jsonp函数,并在该函数中传递数据。
e.g。如果你使用JSONP,那就像
<script type='text/javascript' src='cross-domain-url'>jsonpFunction(data)</script>
从服务器,你必须得到像jsonpFunction({'name':'abc'})的响应,所以在得到这个响应后,你的声明的jsonpFunction将被调用,你将能够实现这个{'name' :'abc'}对象。