我试图通过连接到Flask内置的RESTful API来使用JavaScript进行授权.但是,当我发出请求时,我收到以下错误:
XMLHttpRequest无法加载http:// myApiUrl/login.请求的资源上不存在"Access-Control-Allow-Origin"标头.因此不允许原点'null'访问.
我知道API或远程资源必须设置标题,但为什么在我通过Chrome扩展程序Postman发出请求时它可以正常工作?
这是请求代码:
$.ajax({
type: "POST",
dataType: 'text',
url: api,
username: 'user',
password: 'pass',
crossDomain : true,
xhrFields: {
withCredentials: true
}
})
.done(function( data ) {
console.log("done");
})
.fail( function(xhr, textStatus, errorThrown) {
alert(xhr.responseText);
alert(textStatus);
});
Run Code Online (Sandbox Code Playgroud) 我想使用jQuery操纵iframe中的HTML.
我以为我可以通过将jQuery函数的上下文设置为iframe的文档来实现这一点,例如:
$(function(){ //document ready
$('some selector', frames['nameOfMyIframe'].document).doStuff()
});
Run Code Online (Sandbox Code Playgroud)
然而,这似乎不起作用.一些检查显示我的变量frames['nameOfMyIframe']
是undefined
除非我等待一段时间加载iframe.但是,当iframe加载时,变量不可访问(我得到permission denied
-type错误).
有没有人知道这方面的解决方法?
我正在<iframe>
我的HTML页面中加载一个并尝试使用Javascript访问其中的元素,但是当我尝试执行我的代码时,我收到以下错误:
SecurityError: Blocked a frame with origin "http://www.<domain>.com" from accessing a cross-origin frame.
Run Code Online (Sandbox Code Playgroud)
你能帮我找一个解决方案,以便我可以访问框架中的元素吗?
我正在使用此代码进行测试,但徒劳无功:
$(document).ready(function() {
var iframeWindow = document.getElementById("my-iframe-id").contentWindow;
iframeWindow.addEventListener("load", function() {
var doc = iframe.contentDocument || iframe.contentWindow.document;
var target = doc.getElementById("my-target-id");
target.innerHTML = "Found it!";
});
});
Run Code Online (Sandbox Code Playgroud) 我想制作一个关于HTML/JS 同源政策的社区维基,希望能帮助任何人搜索这个主题.这是SO上搜索次数最多的主题之一,没有统一的wiki,所以我去:)
相同的源策略可防止从一个源加载的文档或脚本从另一个源获取或设置文档的属性.此政策可以追溯到Netscape Navigator 2.0.
请保持示例详细,最好还链接您的来源.
我已经看过关于这个主题的文章和帖子(包括SO),而流行的评论是同源策略阻止跨域的表单POST.我见过的唯一一个人建议同源政策不适用于表格帖子,就在这里.
我想从更"官方"或正式的消息来源得到答案.例如,有没有人知道解决同源来源如何影响表格POST的RFC?
澄清:我不是在询问是否可以构建GET或POST并将其发送到任何域.我在问:
顺便提一下,如果同源不影响表单POST,那么它就会更清楚地说明为什么需要使用防伪令牌.我说"有些"因为似乎很容易相信攻击者可以简单地发出HTTP GET来检索包含防伪令牌的表单,然后进行包含相同令牌的非法POST.评论?
我正在开发一个本地研究工具,要求我关闭Firefox的相同原始策略(在脚本访问方面,我并不真正关心跨域请求).
更具体地说,我希望主机域中的脚本能够访问页面中嵌入的任何iframe中的任意元素,而不管其域名是什么.
我知道之前的Q&As提到了CORS FF扩展,但这不是我需要的,因为它只允许CORS,但不允许脚本访问.
如果它不能轻易完成,我也很感激任何见解,指出我可以修改以禁用SOP的FF src代码的特定部分,以便我可以重新编译FF.
我有一个Grunt进程,它启动了express.js服务器的实例.刚刚开始提供空白页面,并且Chrome中的开发人员控制台的错误日志中出现以下内容(最新版本),这一点工作非常精细:
XMLHttpRequest无法加载https://www.example.com/ 请求的资源上没有"Access-Control-Allow-Origin"标头.因此不允许来源" http:// localhost:4300 "访问.
什么阻止我访问该页面?
我Knockout.js
用来绑定iframe src
标签(这可以根据用户进行配置).
现在,如果用户已配置http://www.google.com(我知道它不会在iframe中加载,这就是为什么我将其用于-ve场景)并且必须在IFrame中显示.但它会引发错误: -
拒绝在框架中显示" http://www.google.co.in/ ",因为它将"X-Frame-Options"设置为"SAMEORIGIN".
我为iframe提供了以下代码: -
<iframe class="iframe" id="iframe" data-bind="attr: {src: externalAppUrl, height: iframeheight}">
<p>Hi, This website does not supports IFrame</p>
</iframe>
Run Code Online (Sandbox Code Playgroud)
我想要的是,如果网址无法加载.我想显示自定义消息.
骗子在这里
现在,如果我使用onload和onerror作为: -
<iframe id="browse" style="width:100%;height:100%" onload="alert('Done')" onerror="alert('Failed')"></iframe>
Run Code Online (Sandbox Code Playgroud)
它可以正常加载w3schools.com,但不能与google.com.
其次: - 如果我把它作为一个功能,并尝试像我在我的小提琴,它不起作用.
<iframe id="browse" style="width:100%;height:100%" onload="load" onerror="error"></iframe>
Run Code Online (Sandbox Code Playgroud)
我不知道如何让它运行并捕获错误.
编辑: - 我已经看到如果iframe没有在stackoverflow中加载或加载问题,想要调用函数,但它显示可以在iframe中加载的网站的错误.
另外,我已经在加载事件上看了Stackoverflow iframe 谢谢!!
我正在尝试将表单数据发送到Web服务,但在Chrome DOM的"网络"中的"请求标题"下面,我得到了起源"evil.com"和referer"localhost:8080".
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate
Accept-Language:nb-NO,nb;q=0.8,no;q=0.6,nn;q=0.4,en-US;q=0.2,en;q=0.2
Connection:keep-alive
Content-Length:91
Content-Type:application/x-www-form-urlencoded; charset=UTF-8;
Host:office.insoft.net:9091
Origin:http://evil.com/
Referer:http://localhost:8080/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2230.0 Safari/537.36
Run Code Online (Sandbox Code Playgroud)
我想换到另一个起源,"localhost:8080"将是最好的起源.
我该如何解决这个问题?
web-services google-chrome header referer same-origin-policy
出于开发目的,我需要在我的机器上的Safari(在Windows上)禁用同源策略.
在Chrome中,可以通过使用标志启动来完成此操作--disable-web-security
.Safari中是否有等效的标志或隐藏设置?
javascript ×5
jquery ×4
iframe ×3
cors ×2
security ×2
ajax ×1
cross-domain ×1
csrf ×1
firefox ×1
header ×1
html ×1
http ×1
knockout.js ×1
referer ×1
safari ×1
web-services ×1