Safari/iPhone 和 Opera/Android 中的 JSONP 不起作用

Posted

技术标签:

【中文标题】Safari/iPhone 和 Opera/Android 中的 JSONP 不起作用【英文标题】:JSONP in Safari/iPhone and Opera/Android doesn't work 【发布时间】:2012-05-21 17:02:26 【问题描述】:

我正在尝试发出适用于所有桌面浏览器但不适用于 iPhone 和 android 的 JSONP 请求。

我正在对返回 JSONP 的 web 服务进行跨域调用:

myFunction(name : "Jonh", last : "Doe")

        $.ajax(
                type: "GET",
                crossDomain: true,
                url: "http://192.168.1.41:8081/Service1/",
                dataType: "jsonp",
                processData : true,
                headers: 
                    "Content-Type": "application/json"
                ,
                jsonp : "myFunction",
                jsonpCallback: "myFunction"
                );

    function myFunction(data)
    
        alert("Hello world!");
    

它可以在桌面上运行,但不能在移动设备上运行!

有什么想法吗?

【问题讨论】:

查看这篇文章以获得答案:***.com/questions/7747264/… 谢谢它对我帮助很大! :) 【参考方案1】:

我的问题是我将 JSONP 请求从 http 服务器(我的开发机器)发送到 https 服务器。

要完全清楚它的样子

从http://localhost.com到https://api.xxx.com的请求

它适用于除移动 safari 之外的所有浏览器。

http -> http = 工作 https -> https = 工作 http -> https = 不工作

【讨论】:

以上是关于Safari/iPhone 和 Opera/Android 中的 JSONP 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

移动端页面 iPhone + Safari 页面调试 之 正确查看网络请求的姿势

Safari iPhone/iPad 中的 Nan 错误日期

CSS 背景位置在 Mobile Safari (iPhone/iPad) 中不起作用

在 Safari iPhone 上的新标签页中打开链接

有没有办法避免提示用户允许在 Safari(iPhone/iPad)中的每次加载时共享位置?

Safari浏览器(iPhone模拟器):如何查看/监控所有被触发的事件?