17

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

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

我的目标是在 iPad 上的 Mobile Safari 中演示该应用程序。有什么方法可以暂时禁用 iPad 上的同源策略?

4

5 回答 5

1

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

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

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

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

我的问题是,我只能通过 IP 访问移动设备,但 ajax 调用指向本地主机。

希望这个技巧有帮助。

于 2014-08-26T13:01:15.800 回答
0

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

于 2014-01-04T09:48:41.043 回答
0

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

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

于 2014-07-25T08:23:37.153 回答
0

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

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

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

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

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

于 2014-03-08T14:49:10.577 回答
-1

如果您使用对公共代理的 ajax 调用,它可以在 Javascript 中实现,该代理基本上删除了相同的原始标头。或者您可以编写一个 php curl 获取页面,在其中调用使用 ajax。有关这方面的代码,请查看此博文:

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

于 2014-07-23T03:57:42.503 回答