Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对GAE的Ajax请求不起作用?_Javascript_Jquery_Ajax_Google App Engine_Jsonp - Fatal编程技术网

Javascript 对GAE的Ajax请求不起作用?

Javascript 对GAE的Ajax请求不起作用?,javascript,jquery,ajax,google-app-engine,jsonp,Javascript,Jquery,Ajax,Google App Engine,Jsonp,我有一个GAE应用程序,它接受JSON请求并在响应中使用JSON进行回复。我知道它可以工作,因为我有一个Android应用程序可以使用它。我也在尝试建立一个基于JavaScript浏览器的界面。为了做到这一点,我试图通过JQuery从托管在不同GAE域上的页面发送请求。然而,据我所知,根本没有发送ajax <!DOCTYPE html> <html> <head> <script> function loadXMLDoc() {

我有一个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>

函数loadXMLDoc(){
警报(“在ajax之前…”;
$.ajax({
类型:“POST”,
url:“在此更正url”,
数据:{
类型:“游戏列表”
},
jsonpCallback:function(){
警惕(“成功”);
},
async:false,
跨域:是的,
数据类型:“jsonp”
});
警报(“在ajax之后…”);
}
仅触发第一个“ajax之前”警报


有人知道我做错了什么吗?

通过向其他域发出AJAX请求,您违反了

如果您有权访问JSON端点,则可以允许特定域访问HTTP头中的端点


如果您没有访问端点的权限(例如,它是第三方提供商),您可以在提供商支持的情况下发出请求。

您是否检查了浏览器调试工具(尤其是网络部分)?它可以提供一些提示。我认为彼得·胡德克是对的。显然,没有办法在POST请求中使用jsonp,只有GET。有人知道如何使用CORS配置GAE以绕过同源策略吗?@yedidyak,是的,jsonp不能处理POST请求。原因如下:我在响应的GAE应用程序的响应中添加了标题。终于起作用了。