我知道jQuery .load()函数有一个"问题":由于同源策略,你无法检索当前域之外的页面,但我记得当我开发另一个我可以做的程序时在PhoneGap编译环境中跨域AJAX没有问题,但是它会在PhoneGap(如普通的AJAX)上工作,还是因为策略而失败?
当我尝试从一个javascript文件到位于同一个域的Web服务上创建XMLHTTPRequest时,我得到:
Access-Control-Allow-Origin不允许来源http://mydomain.com ???
如果我将mydomain.com更改为localhost,我不再有问题,但我想将其保留为mydomain.com
我需要编辑什么,以及为什么首先,因为它是相同的域?
有链接,http://youtu.be/1wAlbzKoYbs
我收到此错误:
Refused to display 'http://www.youtube.com/watch?v=1wAlbzKoYbs&feature=youtu.be'
in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.
Run Code Online (Sandbox Code Playgroud)
有办法解决这个问题吗?
像http://www.youtube.com/watch?v=1wAlbzKoYbs
工作的链接.
我正在尝试使用客户端上的 JQuery 和服务器上的 node.js 运行基本的 Ajax 调用。客户端从与处理 Ajax 请求的服务器相同的服务器加载 - 但我在客户端收到此错误:
“XMLHttpRequest 无法加载 .... 请求的资源上不存在 'Access-Control-Allow-Origin' 标头。Origin ......因此不允许访问。”
我认为这里肯定不会违反同源政策吗?也许本地主机被区别对待?
服务器:
httpListen.createServer(function (req, res) {
....
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('_testcb(\'{"message": "Hello world!"}\')');
}
Run Code Online (Sandbox Code Playgroud)
客户:
$.ajax({
url: "http://127.0.0.1:1337/",
data : {formType:"ajaxTest", key1:"val1", key2:"vall2"},
formType:"ajaxTest",
jsonpCallback: "_testcb",
cache: false,
timeout: 5000,
success: function(data) {
$("#textBox").text("replied");
},
error: function(jqXHR, textStatus, errorThrown) {
alert('error ' + textStatus + " " + errorThrown);
}
});
Run Code Online (Sandbox Code Playgroud)
这是在此处第 1 个回复的指导方针之后编写的: 如何使用 jQuery ajax 调用与 node.js,但我仍然收到上述错误。
编辑:发现问题:使用 localhost …
我已经为通过iframe嵌入到报表中的SAP解决方案(无论如何)制作了一个组件.在SAP平台(BO)上部署报告后,我收到了此错误(在Chrome上,但在IE或FF上也不起作用):
Uncaught SecurityError: Blocked a frame with origin "http://support.domain.com" from accessing a frame with origin "http://support.domain.com". The frame requesting access set "document.domain" to "domain.com", but the frame being accessed did not. Both must set "document.domain" to the same value to allow access.
Run Code Online (Sandbox Code Playgroud)
iframe嵌入到我的组件中,因此它假设在与报告相同的端口上运行.
我发现这个职位上的SO这一个,但它并没有真正帮助我明白我需要做的.
有没有办法摆脱这个,或至少解决这个问题?谢谢 :).
编辑:
主机页面URL:http://support.domain.com/BOE/OpenDocument/opendoc/openDocument.jsp? sIDType = CUID&iDocID = AbmffWLjCAlFsLj14TjuDWg
在iframe上调用属性的文件的URL(并生成错误):http://support.domain.com/BOE/OpenDocument/1411281523/zenwebclient/zen/mimes/sdk_include/com.domain.ds.extension/res /cmp/js/component.js
框架的网址:http: //support.domain.com/BOE/OpenDocument/1411281523/zenwebclient/zen/mimes/sdk_include/com.domain.ds.extension/res/cmp/js/map/js/map.html
iframe嵌入了一些脚本标记,我可以在控制台的网络标记中看到所有内容都正常加载.
也许它可以帮助.
编辑2:
我刚刚意识到SAP报告本身嵌入了iframe.这意味着我的iframe在iframe中,这可能是问题所在.但是,当从Eclipse推出报告时,一切正常.
在我的 Rails 应用程序中,我有 2 个子域,
一:members.myapp.com这是所有成员共享的区域(他们可以在其中登录和管理他们的帐户)
二:每个成员在这样的子域上都有自己的网站:member1.myapp.com、member2.myapp.com、member3.myapp.com等...
假设user1.myapp.com在其站点运行恶意js代码,members.myapp.com是否会受到XSS或其他攻击的影响?
所以我正在使用来自 swiip 的一个名为 generator-gulp-angular 的 yeoman 项目 - 只需执行“npm search gulp-angular”,你就会看到它。
开箱即用的客户端从 127.0.0.1:3000 运行,我希望对 127.0.0.1:8080 上的(python)服务进行 $http 调用。它使用浏览器同步进行实时重新加载和代理中间件来进行从客户端到服务器的代理调用。代理中间件默认是禁用的,所以诀窍是启用它并成功地向服务器发出请求并从服务器接收响应。到目前为止,我还没有能够成功启用它:-(
更新:我按照“给自己一个简单的例子”的座右铭重新创建了 yeoman 项目,以便专注于访问控制问题,并且我让它或多或少地开箱即用,而不必求助于修改服务器逻辑以允许跨源请求。令人高兴的是,它就像说明中描述的一样简单。这是扩展 gulp 中间件以执行代理的代理文件,或者更确切地说是从客户端到服务器的映射:
/*jshint unused:false */
/***************
This file proxy.js allows you to configure a proxy system plugged into BrowserSync
in order to redirect backend requests while still serving and watching
files from the web project
IMPORTANT: The proxy is disabled by default.
If you want to enable it, watch at the configuration options and finally
change the `module.exports` at …
Run Code Online (Sandbox Code Playgroud)让我先提供一些背景信息.我正在开发一个与Microsoft SharePoint 2010集成的系统,不是真正的SharePoint作为系统,而是它的文件系统,文档库等的虚拟表示...用户将文件上载到SharePoint,我的系统监视这些文件并对它们编制索引进入搜索引擎(包括文件内容).用户可以通过REST接口与该系统进行交互.
我创建了一个REST接口来为用户提取一个文件,该文件对应于我的搜索引擎中的某个条目.这使用绝对网络路径作为其标识符.一个例子是//corporateserver//library1/filex.docx
.由于原始策略相同,但我无法加载此文件客户端.因此,我试图通过服务器传输它.
我使用JAX-RS传输数据取得了一些成功,但是,我遇到了以下困难:
用户希望下载的文件可以是多种内容类型,其中大多数是微软办公室格式.我查看了已注册的MIME类型列表,并且遇到了application/msword
或者application/vnd.ms-powerpoint
我的问题:是否有包含Microsoft Office文件的内容类型?如果没有,那么如何继续将正确的内容类型与正在请求的文件进行匹配.如果要为内容类型的word文件服务,会发生什么text/plain
?
任何有关该主题的帮助将不胜感激.
编辑
我用来传输数据的代码:
package com.fujitsu.consensus.rest;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.StreamingOutput;
import org.apache.commons.io.IOUtils;
import org.codehaus.jettison.json.JSONException;
@Path("/fetcher")
public class FetcherService {
@GET
@Path("/fetch")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response fetchFile(@QueryParam("path") String path)
throws JSONException, IOException {
final File file = new File(path);
System.out.println(path);
StreamingOutput stream = new StreamingOutput() {
@Override
public void write(OutputStream …
Run Code Online (Sandbox Code Playgroud) 我正在开发一个本地应用程序,它做了一些“坏事”,主要使用本地文件系统中的文件并从站点获取资源。这导致违反了Chrome 中的同源策略。我很清楚这样做的安全问题,但需要这样做。
在查看this answer和this answer以及互联网上的其他几个答案时,许多人建议主要使用各种命令行标志启动Chrome--disable-web-security
问题在于 Chrome 然后以警告开始:
您正在使用不受支持的命令行标志:--disable-web-security。稳定性和安全性将受到影响
地址栏正下方。
这是为了安装,所以我显然不能在每次启动应用程序时都弹出这个。有没有办法抑制这种情况?
这个线程让人觉得那是不可能的,但是伙计,那会很烦人。
我试图列出iframe
页面中所有s 的名称,所以我可以通过Selenium访问它们.
问题是iframe
每次更改的名称,所以我需要循环遍历所有这些.
我正进入(状态:
未捕获的DOMException:阻止具有原点" http:// localhost:8080 "的帧访问跨源帧.
我尝试使用以下方法循环时出错:
for (var f = 0; f < window.frames.length; f++) {
console.log(window.frames[f].name)
}
Run Code Online (Sandbox Code Playgroud)
有没有办法以iframe
不同的方式获得名称?