相关疑难解决方法(0)

Access-Control-Allow-Origin标头如何工作?

显然,我完全误解了它的语义.我想到了这样的事情:

  1. 客户端从http:// siteA下载javascript代码MyCode.js - 原点.
  2. MyCode.js的响应头包含Access-Control-Allow-Origin:http:// siteB,我认为这意味着允许MyCode.js对站点B进行跨源引用.
  3. 客户端触发MyCode.js的一些功能,它们反过来向http:// siteB发出请求,尽管是跨源请求,但这应该没问题.

好吧,我错了.它根本不起作用.所以,我已经阅读了跨源资源共享,并尝试在w3c推荐中阅读跨源资源共享

有一件事是肯定的 - 我仍然不明白我应该如何使用这个标题.

我完全控制了站点A和站点B.如何启用从站点A下载的javascript代码以使用此标头访问站点B上的资源?

PS

我不想使用JSONP.

javascript cross-domain cors

1050
推荐指数
13
解决办法
144万
查看次数

Access-Control-Allow-Origin不允许使用Origin

我正在Ajax.request使用Sencha Touch 2应用程序(包装在PhoneGap中)创建一个远程PHP服务器.

服务器的响应如下:

XMLHttpRequest无法加载http://nqatalog.negroesquisso.pt/login.php.原产地http://localhost:8888不被访问控制允许来源允许的.

我该如何解决这个问题?

javascript ajax xmlhttprequest cross-domain cors

331
推荐指数
15
解决办法
67万
查看次数

如何绕过Access-Control-Allow-Origin?

我在他们设置的平台上对我自己的服务器进行ajax调用,阻止这些ajax调用(但我需要它从我的服务器获取数据以显示从我服务器的数据库中检索的数据).我的ajax脚本正在运行,它可以将数据发送到我服务器的php脚本以允许它处理.但是,由于它被阻止,它无法获取已处理的数据"Access-Control-Allow-Origin"

我无法访问该平台的源/核心.所以我无法删除它禁止我这样做的脚本.(P/SI使用谷歌Chrome控制台,发现此错误)

Ajax代码如下所示:

 $.ajax({
     type: "GET",
     url: "http://example.com/retrieve.php",
     data: "id=" + id + "&url=" + url,
     dataType: 'json',   
     cache: false,
     success: function(data)
      {
        var friend = data[1];              
        var blog = data[2];           
        $('#user').html("<b>Friends: </b>"+friend+"<b><br> Blogs: </b>"+blog);

      } 
  });
Run Code Online (Sandbox Code Playgroud)

或者JSON上面的ajax脚本是否有相同的代码?我认为JSON是允许的.

我希望有人可以帮助我.

javascript php ajax jquery cors

191
推荐指数
4
解决办法
39万
查看次数

XMLHttpRequest无法加载XXX没有'Access-Control-Allow-Origin'标头

TL;博士; 关于同源政策

我有一个Grunt进程,它启动了express.js服务器的实例.刚刚开始提供空白页面,并且Chrome中的开发人员控制台的错误日志中出现以下内容(最新版本),这一点工作非常精细:

XMLHttpRequest无法加载https://www.example.com/ 请求的资源上没有"Access-Control-Allow-Origin"标头.因此不允许来源" http:// localhost:4300 "访问.

什么阻止我访问该页面?

javascript same-origin-policy cors

92
推荐指数
2
解决办法
9万
查看次数

停止嵌入youtube iframe?

我正在使用YouTube iframe在我的网站上嵌入视频.

<iframe width="100%" height="443" class="yvideo" id="p1QgNF6J1h0"
              src="http://www.youtube.com/embed/p1QgNF6J1h0?rel=0&controls=0&hd=1&showinfo=0&enablejsapi=1"
              frameborder="0" allowfullscreen>
</iframe>
Run Code Online (Sandbox Code Playgroud)

我在同一页面上播放视频.

我想使用javascript左键单击按钮来停止所有这些或其中一个.

可能吗?

更新:

我尝试了Talvi Watia所说和使用的内容:

$('#myStopClickButton').click(function(){
  $('.yvideo').each(function(){
    $(this).stopVideo();
  });
});
Run Code Online (Sandbox Code Playgroud)

我越来越:

Uncaught TypeError: Object [object Object] has no method 'stopVideo' 
Run Code Online (Sandbox Code Playgroud)

javascript iframe html5 youtube-api

39
推荐指数
9
解决办法
12万
查看次数

为什么浏览器API会限制跨域请求?

XMLHttpRequests要求CORS跨域工作.类似于Web字体,WebGL纹理和其他一些东西.通常,所有新API似乎都有此限制.

为什么?

它很容易规避:所需要的只是一个简单的服务器端代理.换句话说,不禁止服务器端代码执行跨域请求; 为什么是客户端代码?这对任何人都有什么安全保障?

它是如此不一致:我不能XMLHttpRequest,但我可以<script src><link rel><img src><iframe>.什么限制XHR等甚至完成?

security http xmlhttprequest cross-domain cors

35
推荐指数
1
解决办法
1万
查看次数

访问控制允许来源不被允许

可能重复:
为什么我在这里看到"Access-Control-Allow-Origin不允许来源"错误?

我面临着我的代码问题,任何人都可以告诉我这个来源有什么问题 http:// localhost:8080是不允许的Access-Control-Allow-Origin

var http = new getXMLHttpRequestObject();
var url = "http://gdata.youtube.com/action/GetUploadToken";
var sendXML = '<?xml version="1.0"?><entry xmlns="http://www.w3.org/2005/Atom"'+
    'xmlns:media="http://search.yahoo.com/mrss/'+
    'xmlns:yt="http://gdata.youtube.com/schemas/2007">'+
    '<media:group><media:title type="plain">My First API</media:title>'+
    '<media:description type="plain">First API</media:description>'+
    '<media:category scheme="http://gdata.youtube.com/schemas/2007/categories.cat">People</media:category>'+
    '<media:keywords>first, api</media:keywords></media:group></entry>';
http.open("POST", url, true);
http.setRequestHeader("Authorization", "AuthSub token=" + AccessToken);
http.setRequestHeader("X-GData-Key", "key="+ dev_key);
http.setRequestHeader("Content-Type", "application/atom+xml; charset=UTF-8");

http.onreadystatechange = function() {
    if(http.readyState == 4) {
        alert(http.responseXML);
    }
}
http.send(sendXML);
Run Code Online (Sandbox Code Playgroud)

javascript xmlhttprequest cors

20
推荐指数
0
解决办法
5万
查看次数

请求的资源上不存在"Access-Control-Allow-Origin"标头

我在AngularJS上使用omniauth-facebook并且CORS无法正常工作.

我的omniauth.rb是

Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook,"xxxxx", "xxxxx",
:scope => 'email,user_birthday,read_stream', :display => 'popup'

end
Run Code Online (Sandbox Code Playgroud)

如果我将它用作rails应用程序和请求,一切正常.但是当我尝试通过Angular JS调用'http:\ localhost:3000\users\auth\facebook"时

$http.get('/users/auth/facebook').success(function(data, status, headers, config) {
            console.log("back in success");
            }).
            error(function(data, status, headers, config) {

            });
    }
Run Code Online (Sandbox Code Playgroud)

我在JS控制台中看到以下错误

XMLHttpRequest无法加载 https://www.facebook.com/dialog/oauth?client_id=xxxx&display=popup ... thday%2Cread_stream&state = 3352c1924bdbc9277f7b1070c38d67acf79b529f198323cb.请求的资源上不存在"Access-Control-Allow-Origin"标头.'http://localhost:3000'因此不允许原点访问.

(该控制台中的网址未完全显示)

我添加了以下行

config.middleware.insert_before Warden::Manager, Rack::Cors
Run Code Online (Sandbox Code Playgroud)

但这也行不通.

什么是最好的方式或如何覆盖OmniAuth的标头?

我正在使用Angularjs和gem devise,omniauth-facebook

ruby-on-rails omniauth ruby-on-rails-3.2 angularjs

17
推荐指数
1
解决办法
3万
查看次数

Access-Control-Allow-Origin不允许使用Origin - 如何使用非常简单的Web堆栈和guice启用CORS

我不确定问题是涉及的技术,还是我对技术的理解.

我有一个用javascript和html编写的html5应用程序托管在apache 2.2服务器上.

我有一个用java编写的java应用程序,使用jetty,guice,jackson,jersey来托管一个简单的REST服务.

两个应用程序都运行在同一个盒子上,一个在端口80上(纯粹的html5应用程序托管在apache上),另一个在8080上(在jetty/guice上托管的纯Java应用程序)

我相信答案是在我发回的标题中.CORS标头告诉浏览器您允许外部应用程序命中您的api.我似乎无法弄清楚如何配置我的Jetty,Guice服务器以返回正确的CORS标头.

我正在使用一个imbeded Jetty服务器,所以我没有web.xml文件来添加标头.

它也可能与HTML5应用程序服务器(在本例中为apache 2.2)如何为应用程序提供服务有关.

apache httpd.conf文件有以下条目:

LoadModule headers_module modules/mod_headers.so

<IFModule mod_headers>
    Header add Access-Control-Allow-Origin "*"
    Header add Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE, HEAD
    Header add Access-Control-Allow-Headers: X-PINGOTHER
    Header add Access-Control-Max-Age: 1728000  
</IfModule>
Run Code Online (Sandbox Code Playgroud)

在我的guice servlet配置中,我有以下内容:

public class RestModule extends ServletModule{

    @Override
    protected void configureServlets() {
        bind(QuestbookService.class);

        // hook Jersey into Guice Servlet
        bind(GuiceContainer.class);

        // hook Jackson into Jersey as the POJO <-> JSON mapper
        bind(JacksonJsonProvider.class).in(Scopes.SINGLETON);

        Map<String, String> guiceContainerConfig = new HashMap<String, String>();
        guiceContainerConfig.put(ResourceConfig.PROPERTY_RESOURCE_FILTER_FACTORIES,
            HttpStatusCodeMetricResourceFilterFactory.class.getCanonicalName()); …
Run Code Online (Sandbox Code Playgroud)

java apache html5 guice cross-domain

11
推荐指数
2
解决办法
5万
查看次数

尝试从localhost向localhost:8000发送数据时,ajax调用不起作用

我正在建立一个网站,我的后端我在django,前端使用PHP.问题是我试图做一个ajax调用php (localhost),django (localhost:8000)每当我尝试所以它给mes下面的错误

$(document).on('click', '.login', function(event) {
    var username = $('#username').val();
    var token = $('#token').val();
    $.ajax({
       type: "POST",
       url: "http://localhost:8000/project/login/uid=" + username + ";token=" + token,
       success: function (html) {
         alert(html);
        }
     });
});
Run Code Online (Sandbox Code Playgroud)

ajax代码是

$(document).on('click', '.login', function(event) {
    var username = $('#username').val();
    var token = $('#token').val();
    $.ajax({
       type: "POST",
       url: "http://localhost:8000/project/login/uid=" + username + ";token=" + token,
       success: function (html) {
         alert(html);
        }
     });
});
Run Code Online (Sandbox Code Playgroud)

我如何从我的前端到localhost:8000上的django后端进行ajax调用

php django ajax

6
推荐指数
1
解决办法
2万
查看次数

pdf.js 只适用于某些 pdf 文件吗?

我正在尝试使用 .pdf 将 pdf 页面转换为画布pdf.js我使用Render .pdf to single Canvas using pdf.js 和 ImageData by K3N中的答案来实现此目的。该代码可在此处Fiddle1获取。

问题是这似乎只适用于某些 pdf。

例如,代码在Fiddle2中适用于http://arxiv.org/pdf/1207.0102v2.pdf

然而,当我在Fiddle3中尝试使用相同的代码http://infolab.stanford.edu/pub/papers/google.pdf时,它失败了。

为什么会发生这种情况?可以解决吗?

javascript pdf jquery pdf.js

4
推荐指数
1
解决办法
1364
查看次数