交叉源请求在加载Google JS api时被阻止

时间:2014-10-22 06:53:42

标签: javascript jquery parse-platform

我有一种我从未经历过的特别奇怪的情况。

我的代码目标: 我正在使用Parse.com作为我的后端制作一个网络应用,并希望使用Google Charts向网页添加一些饼图。

我做了什么: 如文档所述,我使用标记

加载了Google JS api
<script type="text/javascript" src="http://www.google.com/jsapi"></script>

问题从这里开始。在包含此标记后打开页面后,页面加载失败(从某种意义上说它卡在Read www.google.com...上,而我只能看到白色屏幕)。我打开控制台,发现以下消息:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://api.parse.com/1/classes/MyClass. This can be fixed by moving the resource to the same domain or enabling CORS.

MyClass这里是我在Parse后端创建的类的名称,并且在页面加载过程中调用了一个函数来从中获取一些数据。

我尝试在单独的页面中加载JS api并且它已成功运行。 任何想法如何解决它?就我而言,加载Parse.com的API和Google的JS api也很重要。有帮助吗? 谢谢。

P.S。在页面加载期间加载以下脚本:

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>

<script type="text/javascript" src="http://www.parsecdn.com/js/parse-1.2.18.min.js"></script>
<script type="text/javascript" src="myquery.js"></script>
<script type="text/javascript" src="userquery.js"></script>

jquery.js是缩小的jQuery库。 'myquery.js'和userquery.js是我自己编写的JS文件。

1 个答案:

答案 0 :(得分:0)

您确定使用的是 JSONP 吗?我甚至在localhost上使用了Google的jsapi(虽然没有使用解析)。您可以将解析时的数据公开为Web服务,然后可以对您的解析服务进行AJAX JSONP调用。

这对我来说没有任何问题,我在localhost以及各个领域都尝试过。

var jsonData = jQuery.ajax({
                        type: 'POST',
                        url: base_url+"index.php/<url>?callback=?",
                        dataType:"jsonp",
                        data: {userID : uID},
                        async: false
                        }).responseText;

var options = {
  title: 'Title',
  hAxis: {title: 'X'},
  vAxis: {title: 'Y'}
};

//create table for google visualization
var datatable = new google.visualization.DataTable();

//add rows and column to datatable

 ....

//draw chart
var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
chart.draw(data1, options);