Javascript 从另一个域访问json文件
我有两个网站:Javascript 从另一个域访问json文件,javascript,jquery,cross-browser,cross-domain,jsonp,Javascript,Jquery,Cross Browser,Cross Domain,Jsonp,我有两个网站: www.siteone.com www.sitetwo.com 现在,我必须通过脚本从www.sitetwo.com 由于我必须获取特定的数据,所以我将变量从www.siteone.com传递到www.sitetwo.com,如下所示: //script in www.siteone.com <script type="text/javascript"> $(document).ready(function(){ window.$vars
www.siteone.com
www.sitetwo.com
现在,我必须通过脚本从www.sitetwo.com
由于我必须获取特定的数据,所以我将变量从www.siteone.com
传递到www.sitetwo.com
,如下所示:
//script in www.siteone.com
<script type="text/javascript">
$(document).ready(function(){
window.$vars = {
id:"form"
};
</script>
在这里,脚本正确地接收到我从siteone传递到Site2的值“id”。但由于跨域,我无法打开form.json文件。将引发以下错误:
XMLHttpRequest cannot load http://www.sitetwo.com/form.json. Origin http://www.siteone.com is not allowed by Access-Control-Allow-Origin.
如何从
www.siteone.com
浏览器访问form.json由于以下原因,standarts不允许您从其他域加载json。使用您可以从服务器端脚本发送额外的头
header("Access-Control-Allow-Origin: http://www.sitetwo.com");
jsonp就是答案。您需要找到一种方法将jsonp与
dform
ajax调用一起使用。dform是该页面中加载的另一个脚本的函数。在这种情况下,我们如何有效地使用jsonp?我没有使用该dform脚本。使用jQueryAjax,您可以通过将数据类型设置为jsonp来轻松使用jsonp。可能的重复包括配置服务器。但是我们不能在脚本中直接使用这个头吗??
header("Access-Control-Allow-Origin: http://www.sitetwo.com");