我有一个HTML5 / JavaScript应用程序,最初编写为在某些汽车中运行。基本上,我需要将我的应用程序设置为在浏览器中运行,以便向客户进行简单的演示。
我正在使用jQuery .ajax,由于同源策略导致问题。我发现有很多方法可以在桌面浏览器中禁用它,但不能在移动浏览器中禁用它。
我的目标是在Mobile Safari中在iPad上演示应用程序。有没有办法暂时禁用iPad上的同源策略?
答案 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。它将绕过同源政策。