我有一个GAE应用程序,它接受JSON请求并在响应中使用JSON进行回复。我知道它有效,因为我有一个适用它的Android应用程序。我也试图建立一个基于JavaScript浏览器的界面。为此,我尝试通过JQuery从托管在不同GAE域上的页面发送请求。但是,据我所知,根本没有发送ajax。
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc() {
alert("before ajax.....");
$.ajax({
type: "POST",
url: "CORRECT URL HERE",
data: {
type:"GAMES_LIST"
},
jsonpCallback: function(){
alert("success");
},
async: false,
crossDomain : true,
dataType: 'jsonp'
});
alert("after ajax...");
}
</script>
</head>
<body onLoad="loadXMLDoc()">
<div id="myDiv"></div>
</body>
</html>
只有ajax&#39;之前的第一个&#39;警报被解雇了。
有没有人知道我做错了什么?
答案 0 :(得分:1)
通过向其他域发出AJAX请求,您违反了Same-origin policy。
如果您有权访问JSON端点,则可以允许特定域在Access-Control-Allow-Origin HTTP标头中访问您的端点。
如果您无权访问该端点,例如它是第三方提供商,如果提供商支持请求,您可以发出JSONP请求。