سؤال

I have a GAE app which accepts JSON requests and replies with JSON in the response. I know it works as I have an Android app that works with it. I'm trying to set up a JavaScript browser based interface as well. To do this I'm trying to send a request via JQuery from a page hosted on a different GAE domain. However, as far as I can see the ajax is not sent at all.

<!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>

Only the first 'before ajax' alert is fired.

Has anyone got an idea what I'm doing wrong?

هل كانت مفيدة؟

المحلول

By making an AJAX request to a different domain, you are violating the Same-origin policy.

If you have access to the JSON endpoint, you can allow specific domains to access your endpoint in the Access-Control-Allow-Origin HTTP header.

If you don't have access to the endpoint e.g. it's a third-party provider, you can make a JSONP request if the provider supports it.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top