JSONP调用无法使用apple-mobile-web-app-capable =“yes”

时间:2011-10-12 22:17:44

标签: jquery ipad html5 webkit iphone-standalone-web-app

问题: 设置<meta name="apple-mobile-web-app-capable" content="yes" />后,我的所有jsonp请求都被拒绝。我通过设置content =“yes”来读取,您无法更改页面。但我不知道你无法请求外部资源。此应用全屏显示。有没有办法在html5应用程序上使用此标签将iPad设置为全屏模式?

现在我的请求只是被发送到另一个子域而且他们都被拒绝了?任何人都知道如何解决这个问题?允许jsonp并强制全屏模式?

2 个答案:

答案 0 :(得分:4)

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

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

所以这是解决方案:

注意:在这两个请求中,我指定&amp; 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', '*');
    } 

答案 1 :(得分:0)

不确定你是否已经这样做但是你添加了“callback =?”在您的查询参数?

请查看此处的dataType部分以获取更多信息:http://api.jquery.com/jQuery.ajax/