在Mobile Safari中禁用同源策略

时间:2012-08-27 22:09:26

标签: javascript html ipad mobile-safari same-origin-policy

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

我正在使用jQuery .ajax,由于同源策略导致问题。我发现有很多方法可以在桌面浏览器中禁用它,但不能在移动浏览器中禁用它。

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

5 个答案:

答案 0 :(得分:1)

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

var BASEPATH = 'http://192.168.1.200/myapp';

$.ajax({
  url: BASEPATH+'/someaction'
});

我从手机上通过http://192.168.1.200/myapp

访问它

我的问题是来自移动设备我只能通过IP访问,但是ajax调用指向localhost。

希望这个技巧有所帮助。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

基本上,你需要一个标题。

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

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

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

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

答案 3 :(得分:0)

如果您对公共代理使用ajax调用,基本上删除相同的原始标头,则可以在Javascript中使用。或者你可以编写一个php curl get页面来调用使用ajax。有关此问题的代码,请查看此博文:

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

答案 4 :(得分:0)

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

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

相关问题