2

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

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

4

2 回答 2

4

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

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

所以这里是解决方案:

注意:在这两个请求中,我都指定了 &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', '*');
    } 
于 2011-10-13T20:44:34.017 回答
0

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

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

于 2011-10-12T23:02:03.150 回答