天道酬勤,学无止境

cross-domain

Issues with Cross Document Messaging between IFrame & Parent

问题 我有一个应用程序在“外部”页面(不同的域等)的 iframe 内运行。 为了允许 iframe 和父级之间进行一些基本的通信,我在父页面上加载了我的一些脚本并使用postMessage进行一些跨文档消息传递。 大多数情况下,这种通信按预期工作,但有时我会看到一些错误报告给我的错误跟踪工具,但无法弄清楚它们发生的原因。 这是一些示例代码: PluginOnParent.js // ... window.addEventListener('message', function(e) { // Check message origin etc... if (e.data.type === 'iFrameRequest') { e.source.postMessage({ type: 'parentResponse', responseData: someInterestingData }, e.origin); } // ... }, false); // ... AppInsideIFrame.js // ... var timeoutId; try { if (window.self === window.top) { // We're not inside an IFrame, don't do anything... return; } } catch (e) { //

2022-05-15 08:50:04    分类:技术分享    javascript   iframe   cross-domain   messaging

Securing a private IP address (https certificate)

问题 我有一个不寻常的用例: Internet 上的 Web 服务器正在通过 HTTPS 提供页面, 在这些网页中,对本地连接的设备(IP over USB)调用 XMLHttpRequests 该设备同时支持 HTTP 和 HTTPS, 该设备可通过http(s)://192.168.0.1访问由于 https 页面中的内容不安全,http 调用失败, https 调用失败,因为证书不受信任(自签名), 附带问题:由于设备本地连接到 PC,因此加密非常无用:是否存在允许不安全连接到特定 URL 的 http 标头? (如跨域的 CORS) 主要问题:是否可以获得私有 IP 地址的证书? 编辑:似乎 Plex 也有类似的问题,并按照此博客中描述的方式解决了它。 这对我来说太大了。 回答1 无法为保留 IP 地址(RFC 1918 和 RFC 4193 范围)/私有 IP 地址(IPv4、IPv6)、内部服务器名称的 Intranet、具有非公共域名后缀的本地服务器名称颁发 SSL 证书。 但是,您可以使用“自签名”证书。 以下是如何创建一个: 为私有 IP 创建自签名证书(例如 https://192.168.0.1): 您需要安装 OpenSSL。 例如,在 Ubuntu 上,您可以通过以下方式安装它: sudo apt-get install openssl (它可能已经安装

2022-05-14 13:26:04    分类:技术分享    ssl   cross-domain

Javascript - CORS no response

问题 我有网站:http://www.bluegreenblack.com/p/weather-in-ireland.html 想要从以下位置添加 Metar 读数:https://www.aviationweather.gov/adds/dataserver_current/httpparam?dataSource=metars&requestType=retrieve&format=xml&hoursBeforeNow=3&mostRecent=true&stationString=EIDW 我想将 Javascript 与 CORS 一起使用。 这是代码(来自其他网站的copypasta): <script language="Javascript"> // Create the XHR object. function createCORSRequest(method, url) { var xhr = new XMLHttpRequest(); if ("withCredentials" in xhr) { // XHR for Chrome/Firefox/Opera/Safari. xhr.open(method, url, true); xhr.setRequestHeader('Accept', 'text/html,application/xhtml+xml

2022-05-13 12:30:04    分类:技术分享    javascript   xmlhttprequest   cors   cross-domain

Cross-domain post to external site fails on wordpress

问题 我正在尝试使用 Javascript 从 wordpress 网站将数据发布到外部网站,但是当我发送表单时,我得到了这个: XMLHttpRequest 无法加载 https://external_site.com/embed/documents。 对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。 因此,不允许访问来源“http://my_site.com”。 响应具有 HTTP 状态代码 404 我正在尝试从 Wordpress 站点执行此操作,这是发送数据的 Javascript 部分 jQuery('#send_doc').click(function(){ var url = jQuery('#document_url').val(); var name = jQuery('#name').val(); var request = new XMLHttpRequest(); request.open('POST', 'https://external_site.com/embed/documents'); request.setRequestHeader('Content-Type', 'application/json'); request.setRequestHeader(

2022-05-12 07:16:13    分类:技术分享    javascript   wordpress   http-post   cross-domain

Use JQuery to modify CSS for content in an iFrame

问题 我的网站上有一个 Twitter 小部件(一个嵌入 iFrame 的 Javascript 小部件)。 以前,我用 iframe[id^='twitter-widget-']{ width:100% !important;} 将小部件宽度更改为 100%,而不是默认的 520 像素。 直到昨天它工作得很好。 不知何故,iframe 上的 CSS 设置不再起作用。 我检查了 iFrame 源代码,似乎 Twiiter 添加了这个 .timeline { max-width: 520px; } 因为这个iframe来自twitter,所以我没有办法使用css来修改.timeline。 我尝试使用 Jquery/javascript: $("#twitter-widget-0").contents().find(".timeline").css("max-width","100%"); 但它似乎只适用于控制台。 我将这行 JavaScript 放在 PHP 模板文件中,但它不起作用。 我试过body onLoad , window onload和document onload都没有。 我还将这个 javascript 放在我的模板文件的末尾,它也没有。 如何解决这个问题? 谢谢, 回答1 您不能使用 JavaScript 对任何跨域 iFrame 进行任何 DOM 操作! 如果

2022-05-11 11:26:39    分类:技术分享    jquery   css   iframe   cross-domain

simple ajax POST with cross domain request

问题 我正在尝试向后端程序员制作的 API 发送一个只有一个参数的简单表单,他告诉我,我需要做的就是使用 ajax 通过 POST 将一个参数发送到给定的 URL。 问题是我收到No 'Access-Control-Allow-Origin' header is present错误。 我已经通读了这个问题,并试图实施第一个答案的解决方案,但没有成功。 当我通过 hurl 测试 API 时,它可以正常工作。 这是我用来发送表格的代码 $( document ).ready(function() { $('.btnEnviar').click(function(){ $.ajax({ type: 'POST', url: 'http://xxxxx.xxx/subscribers/subscribeEmail', datatype: 'jsonp', async: true, success:function(){ try{ alert("ok"); }catch (e){ alert(e); } } }); }); }); 这是形式: <form class="newsletter" method="post" action="http://xxxxx.xxx/subscribers/subscribeEmail"> <input type="text" placeholder=

2022-05-10 15:07:03    分类:技术分享    jquery   ajax   post   cross-domain

Are pure and traditional Ajax Requests possible on native / hybrid mobile apps?

问题 我知道使用 JSONP thechnique http://en.wikipedia.org/wiki/JSONP 我们可以进行跨域 Ajax 请求。 但是对于这个不算“纯粹和传统”的问题。 我只是想知道本机/混合应用程序是否也适用“同源策略” http://en.wikipedia.org/wiki/Same-origin_policy 在这件事上似乎有很多困惑。 我的一个朋友发誓,他使用“Ajax”代理将 Sencha Touch 2.3.1 + PhoneGap 3 连接到他的后端,我觉得很难相信(代理应该是 JSONP IMO),或者这只需要特殊的服务器配置,因为同源政策永远不会应用'因为浏览器永远不会参与? 我知道这种问题可能不符合 SO 的精神,但我认为关于这个主题的一个好的答案会帮助很多人,因为我找不到一个。 最好的问候@code4jhon 回答1 PhoneGap 应用程序在 web 视图中而不是在浏览器中运行,因此 PhoneGap 应用程序不存在跨源问题,您可以对任何 URL 执行 AJAX 调用。 唯一需要注意的是,配置中有一个白名单参数“访问来源”,用于限制对某些特定 URL 的访问。 对于较旧的 PhoneGap 版本,访问来源的默认设置是 localhost,但现在默认设置为“*”,允许访问任何 URL。 PhoneGap 不需要 JSONP 或

2022-05-07 10:06:17    分类:技术分享    javascript   ajax   cordova   sencha-touch   cross-domain

Cross Site Scripting Iframe Permission Denied issue

问题 我在以下代码中收到跨站点脚本错误。 Javascript function resizeIframe(ifRef) { var ifDoc; //alert(ifRef); try { ifDoc = ifRef.contentWindow.document.documentElement; } catch( e ) { alert(e); try { ifDoc = ifRef.contentDocument.documentElement; } catch( ee ){ alert(ee); } } //var doc = ifRef.height; //alert(doc); if(ifDoc) { ifRef.height = 1; ifRef.style.height = ifDoc.scrollHeight+'px'; } } 框架 <iframe onload="resizeIframe(this)" style="margin-bottom: 16px;" src="ourteamnav/first.php" frameborder="0" scrolling="no" width="597" height="240"></iframe> 错误如下 前面' : Mozilla Firefox:错误:访问属性“文档”的权限被拒绝 Google Chrome:

2022-05-05 04:20:04    分类:技术分享    javascript   html   wordpress   iframe   cross-domain

Using XMLHttpRequest without CORS by modifying HTTP headers?

问题 我正在用(已弃用的)Twitter API 1.0 做一些测试 例如,我想从 API 获取数据,客户端使用来自任何跨域网页的 AJAX 浏览器请求。 它可以是新的空白选项卡、本地 HTML 页面或任何现有网站。 我试过 JSONP,效果很好,但我想使用默认的 XMLHttpRequest,即使 Twitter 服务器不支持 CORS http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing。 例如,在 google.com 主页上,我创建了一个使用 Firebug 执行的对 Twitter API 的简单 AJAX 调用: var xhr = new XMLHttpRequest(); xhr.open("GET", "https://api.twitter.com/1/friends/ids.json?screen_name=baptx", false); xhr.send(); 由于相同的来源策略,这将不起作用并在 Firebug 上打印错误: Error: Failure xhr.send(); 它返回 HTTP 200 OK 代码,但未从服务器接收到 JSON 数据。 我已经看到来自 google.com 网页和 api.twitter 网页的请求之间的两个区别(因为它是 API 域名,所以它适用于

2022-05-04 22:40:07    分类:技术分享    javascript   ajax   http-headers   cross-domain   cors

jQuery token-input not processing cross-domain results

问题 我正在创建一个 chrome 扩展,它使用 http://loopj.com/jquery-tokeninput/ 添加令牌,请参阅上一个问题。 我对如何从我的服务器获取结果以由 tokenInput 处理感到困惑。 以下文章,什么是 JSONP?,建议我需要添加一个回调查询参数以使跨域 jsonp 工作: $(function() { $("#token").tokenInput("http://localhost/token/search?callback=jsonprocess", { preventDuplicates: true, crossDomain: true, }); }); 这用于将响应包装在我的 php 代码中: header('Content-type: text/javascript'); echo $this->request->query('callback') . '(' . json_encode($token_array) . ')'; exit; 然后在我的 javascript 中调用jsonprocess()方法。 但是,这超出了 tokenInput 实例的上下文,因此我无法填充结果。 这是正确的功能吗? 或者有没有办法让jQuery tokeninput 插件直接处理jsonp? tokeninput 中的成功回调: ajax

2022-05-04 15:36:20    分类:技术分享    php   javascript   google-chrome-extension   cross-domain   jquery-tokeninput