JSONP 调用不适用于苹果-移动-网络-应用程序-支持 = "yes"



问题:设置了<meta name="apple-mobile-web-app-capable" content="yes" />后,我所有的json请求都被拒绝了。我读到通过设置content="yes",你不能改变页面。但我不知道你不能请求外部资源。这个应用程序全屏。是否有办法使用这个标签设置iPad在html5应用程序的全屏模式?

现在我的请求只是被发送到另一个子域名,他们都被拒绝了吗?有人知道怎么解决这个问题吗?允许json和强制全屏模式?

所以解决这个问题很棘手。

使用JSONP,您无需担心跨域问题。但是,当您设置<meta name="apple-mobile-web-app-capable" content="yes" />时,您将NOT能够发送跨域请求,而无需在头中指定Access-Control-Allow-Origin。

所以这是解决方案:

注意:在这两个请求中,我都指定了&jsoncallback=?

行不通:

function jsonpRequest(req){
    $.getJSON(req,
      function(data) {
        // JSONP will run getJson() above;
    });
}

工作:

function jsonpRequest(req){
        $.ajax({
          url: req,
          dataType: 'json',
         beforeSend: setHeader,
          //data: data
          //success: callback
        });
        /*
        $.getJSON(req,
              function(data) {
                // JSONP will run getJson() above;
            });*/
    }
    function setHeader(xhr) {
     xhr.setRequestHeader('Access-Control-Allow-Origin', '*');
    } 

不确定您是否已经这样做了,但您是否在查询参数中添加了"callback=?" ?

查看这里的dataType部分获取更多信息:http://api.jquery.com/jQuery.ajax/

最新更新