禁用同源策略/在 WebKit WebViews 中创建跨域 XMLHttpRequests?

     2023-02-22     254

关键词:

【中文标题】禁用同源策略/在 WebKit WebViews 中创建跨域 XMLHttpRequests?【英文标题】:Disable the Same Origin Policy / making cross domain XMLHttpRequests in WebKit WebViews? 【发布时间】:2011-01-26 03:30:50 【问题描述】:

我想在我自己的嵌入式 WebView 中禁用 XMLHttpRequests 的同源策略。我可以控制在 WebView 中加载的页面/正在执行的代码,所以我不关心执行相同的源策略。我想做跨域请求。

我已尝试实现 WebPolicyDelegate 和 WebResourceLoadDelegate,但似乎没有为 XMLHttpRequests 调用它们。

【问题讨论】:

你似乎找到了答案,你能分享一下是什么吗?我将 WebView 嵌入到我的 Cocoa 程序中,如下所示: - (void)applicationDidFinishLaunching:(NSNotification )aNotification NSView contentView = [window contentView]; WebView* webView = [[WebView alloc] initWithFrame:contentView.frame]; webView.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable; [contentView addSubview:webView]; [[webView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"google.com" ]]]; 【参考方案1】:
void WebSettingsImpl::setWebSecurityEnabled(bool enabled)

    m_settings->setWebSecurityEnabled(enabled);

希望这是您所需要的! 你可以给我发个关于 webkit 的消息。

【讨论】:

【参考方案2】:

我一直在寻找如何在 OSX 上执行此操作。原来WebPreferences 有一个私有方法:setWebSecurityEnabled。将此设置为 false,它应该可以工作。

http://trac.webkit.org/browser/trunk/Source/WebKit/mac/WebView/WebPreferences.mm?rev=111350#L1011

例如:

NSString* noSecurityPreferencesId = @"noSecurity";
WebPreferences* prefs = [[WebPreferences alloc] initWithIdentifier: noSecurityPreferencesId];
[prefs setWebSecurityEnabled: false];
[webView setPreferencesIdentifier: noSecurityPreferencesId];

【讨论】:

【参考方案3】:

我认为无论如何你都很难找到一种对你有用的方式来做到这一点。您是否考虑过 JSONP 而不是 XHR? http://en.wikipedia.org/wiki/JSON

高级概述是 JSONP 使用与您在上面使用的相同的机制来请求外部脚本。不同之处在于您的服务器将识别这一点并将 JSON 响应打包为回调方法的参数。当您的站点收到此“脚本”时,它会执行它,从而将数据直接返回到您的回调方法中。

如果您能够使用像 jQuery 这样的框架,那么大部分客户端都会为您透明地处理。事实上,它将使用与 XHR (AJAX) 请求几乎相同的方法。在这里查看:http://api.jquery.com/jQuery.getJSON/

【讨论】:

我对 JSONP 非常熟悉,但这不是我想要的。我只是想在嵌入 WebView 的受控环境中禁用 SOP。我不是在谈论在普通 Web 浏览器中禁用 SOP,因为我知道这是不可能的(有充分的理由)【参考方案4】:

您可以尝试将Access-Control-Allow-Origin: * 标头添加到服务器响应中。不过,我认为并非所有浏览器都支持它。

更多信息:https://developer.mozilla.org/en/HTTP_access_control

【讨论】:

在 Android Chrome 上禁用同源策略

】在AndroidChrome上禁用同源策略【英文标题】:DisablesameoriginpolicyonAndroidChrome【发布时间】:2012-08-2923:11:32【问题描述】:有没有办法,我搜索了其他帖子并没有找到任何关于android版本的答案。【问题讨论】:【参考方案1】:无... 查看详情

在 Chrome 中禁用同源策略

】在Chrome中禁用同源策略【英文标题】:DisablesameoriginpolicyinChrome【发布时间】:2011-03-0709:06:25【问题描述】:有什么方法可以在Google的Chrome浏览器上禁用Same-originpolicy?【问题讨论】:另见peter.sh/experiments/chromium-command-line-switches... 查看详情

如何在 Safari(Windows 7)中禁用同源策略?

】如何在Safari(Windows7)中禁用同源策略?【英文标题】:HowtodisablesameoriginpolicyinSafari(Windows7)?【发布时间】:2012-06-0809:46:37【问题描述】:我正在尝试在W7站的Safari(5.1.7.)中禁用同源策略。我正在做phonegap应用程序+jquerymobile+使用... 查看详情

在 Mobile Safari 中禁用同源策略

】在MobileSafari中禁用同源策略【英文标题】:DisableSameOriginPolicyinMobileSafari【发布时间】:2012-08-2210:24:00【问题描述】:我有一个HTML5/JavaScript应用程序,最初是为在某些汽车上运行而编写的。基本上,我需要将我的应用设置为在... 查看详情

在 TWebbrowser 中禁用同源策略

】在TWebbrowser中禁用同源策略【英文标题】:DisableSameOriginPolicyinTWebbrowser【发布时间】:2014-07-0716:08:32【问题描述】:我目前正在为我们的软件创建一个演示应用程序,它基本上是一个网站,只是在一个与TWebbrowser一起使用的delph... 查看详情

如何在 Chrome 扩展程序中禁用同源策略?

】如何在Chrome扩展程序中禁用同源策略?【英文标题】:HowtodisablesameoriginpolicyinChromeextension?【发布时间】:2011-08-2810:27:27【问题描述】:也许有一些设置可以在扩展上下文中禁用它。因为我正在开发一个扩展,所以我应该有责... 查看详情

禁用 Firefox 同源策略

】禁用Firefox同源策略【英文标题】:Disablefirefoxsameoriginpolicy【发布时间】:2013-06-0922:18:34【问题描述】:我正在开发一个本地研究工具,它要求我关闭Firefox的同源策略(在脚本访问方面,我并不真正关心跨域请求)。更具体地... 查看详情

尝试禁用 Chrome 同源策略

】尝试禁用Chrome同源策略【英文标题】:TryingtodisableChromesameoriginpolicy【发布时间】:2014-03-2810:20:26【问题描述】:我正在尝试学习melonJS教程。它说我应该使用以下两种方法之一禁用跨域请求:--disable-web-security--allow-file-access-from... 查看详情

尝试禁用 Chrome 同源策略

】尝试禁用Chrome同源策略【英文标题】:TryingtodisableChromesameoriginpolicy【发布时间】:2014-03-2810:20:26【问题描述】:我正在尝试学习melonJS教程。它说我应该使用以下两种方法之一禁用跨域请求:--disable-web-security--allow-file-access-from... 查看详情

禁用浏览器同源策略的方法

...有的时候会涉及到数据安全的问题,这时候我们可以通过禁用本地浏览器的同源策略来进行跨域的联调ie的禁用同源策略设置,进入ie的网际网路选项设置,然后选择安全性,再选择自订等级,然后下拉,找到「存取跨网络的资... 查看详情

我可以在任何浏览器上禁用 SOP(同源策略)进行开发吗?

】我可以在任何浏览器上禁用SOP(同源策略)进行开发吗?【英文标题】:CanIdisableSOP(SameOriginPolicy)onanybrowserfordevelopment?【发布时间】:2010-09-2417:33:06【问题描述】:我想在我的Windows机器上开发JavaScript。你知道我可以关闭SameOrig... 查看详情

无法解决的 CORS 问题!如何在 MacOS 上禁用 Chrome 的同源策略?

】无法解决的CORS问题!如何在MacOS上禁用Chrome的同源策略?【英文标题】:UnresolvableCORSissue!HowtodisablethesameoriginpolicyofChromeonMacOS?【发布时间】:2018-05-2523:09:31【问题描述】:有一段时间,我一直面临关于CORS的问题。我正在使用lo... 查看详情

Chrome:禁用本地主机的同源策略

】Chrome:禁用本地主机的同源策略【英文标题】:Chrome:Disablesameoriginpolicyforlocalhost【发布时间】:2014-02-0508:29:51【问题描述】:我正在开发一个phonegap/cordova应用程序,它不受我关心的网站的同源策略的约束。我使用chrome浏览器... 查看详情

webdriver.io 无法为 iframe 禁用同源策略

】webdriver.io无法为iframe禁用同源策略【英文标题】:webdriver.iocan\'tdisablesame-origin-policyforiframe【发布时间】:2017-12-2710:58:48【问题描述】:我需要为我的自动测试禁用同源策略。我在Ubuntu16.04上使用webdriver.io+selenium独立服务器+chrom... 查看详情

Chrome 禁用网络安全同源策略不再起作用

】Chrome禁用网络安全同源策略不再起作用【英文标题】:Chromedisablewebsecuritysameoriginpolicynomoreworking【发布时间】:2016-12-1117:14:51【问题描述】:更新我的chrome后,我无法使用--disable-web-security命令禁用网络安全。我尝试了很多选项... 查看详情

在不安装插件的情况下禁用 Firefox 同源策略

】在不安装插件的情况下禁用Firefox同源策略【英文标题】:DisableFirefoxSameOriginPolicywithoutinstallingaplugin【发布时间】:2018-07-3021:29:15【问题描述】:有没有办法通过切换浏览器中的标志来禁用MozillaFirefox浏览器上的sameoriginpolicy?... 查看详情

对 Chrome 的同源策略的困惑:如何在不要求用户禁用 Chrome 中的安全性的情况下摆脱它?

】对Chrome的同源策略的困惑:如何在不要求用户禁用Chrome中的安全性的情况下摆脱它?【英文标题】:ConfusionaboutChrome\'ssameoriginpolicy:howtogetridofitwithoutaskingtheuserdisablesecurityinChrome?【发布时间】:2014-04-1008:04:04【问题描述】:我很... 查看详情

JavaFX WebView 禁用同源策略(允许跨域请求)

】JavaFXWebView禁用同源策略(允许跨域请求)【英文标题】:JavaFXWebViewdisableSameoriginpolicy(allowcrossdomainrequests)【发布时间】:2013-04-1909:53:32【问题描述】:我正在开发一个JavaFX应用程序,它主要是一个美化的网页。它是一个桌面应... 查看详情