禁用Mobile Safari中的同源策略

Disable Same Origin Policy in Mobile Safari

本文关键字:策略 Mobile Safari 禁用      更新时间:2023-09-26

我有一个HTML5/JavaScript应用程序,它最初是为在某些汽车中运行而编写的。基本上,我需要设置我的应用程序在浏览器中运行,以便向客户进行简单的演示。

我使用的是jQuery.ajax,它由于同源策略而导致问题。我已经找到了很多方法在桌面浏览器中禁用它,但在移动浏览器中没有。

我的目标是在移动Safari中在iPad上演示该应用程序。有没有办法暂时禁用iPad上的同源政策?

我在一个sencha应用程序中遇到了同样的问题。我通过设置javascript ajax调用的基本路径来解决问题,例如:

var BASEPATH = 'http://192.168.1.200/myapp';
$.ajax({
  url: BASEPATH+'/someaction'
});

从手机上我用http://192.168.1.200/myapp 访问它

我的问题是,从移动设备我只能使用IP访问,但ajax调用指向localhost。

希望这个技巧能有所帮助。

您需要运行web服务器,而不是文件协议。

基本上,您需要一个标头。

将此代码放在要发送跨域请求的页面顶部。

<?php header("Access-Control-Allow-Origin: *"); ?>

小心使用*,因为这允许任何网站向发送标题的页面发送请求。

*可以替换为域,如example.com、example.net。

尝试在ajax调用中使用JSONP。它将绕过同源政策。

http://learn.jquery.com/ajax/working-with-jsonp/

在Javascript中,如果使用对公共代理的ajax调用,基本上可以删除相同的原始标头,那么这是可能的。或者,您可以编写一个php curl get页面,在其中调用ajax。关于这个检查这个博客文章的代码:

http://thewebtimes.tumblr.com/post/90549614884/access-forbidden-webpages-with-javascript