标签: cors

在将站点转换为SSL后,使用Ajax阻止了跨源请求

我们使用Ruby 2.1.2和Rails 3.2.14.在我们将网站移至SSL后,我们在浏览器控制台上收到了关于ajax请求的以下错误.

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://sitename.com/xxx/xx?id=xx. This can be fixed by moving the resource to the same domain or enabling CORS.
Run Code Online (Sandbox Code Playgroud)

我们尝试过添加

headers: { 'Access-Control-Allow-Origin': '*' },
crossDomain: true
Run Code Online (Sandbox Code Playgroud)

但没有效果.这是ajax代码:

$.ajax({
            type: "GET",
            data: {id: id}, 
            url: path+id,
            headers: { 'Access-Control-Allow-Origin': '*' },
            crossDomain: true,           
            success: function(data) { }
});
Run Code Online (Sandbox Code Playgroud)

还有其他建议吗?

ajax ssl ruby-on-rails cross-domain cors

0
推荐指数
1
解决办法
2285
查看次数

在带有CORS的一个端口上运行&Socket.io HTTP + WSS?

Go的新手。.显然仍在学习语法和基础知识..但是我确实有一个特定的目标。

我正在尝试在:8080上建立一个简单的服务器,该服务器可以响应HTTP和socket.io(通过/socket.io/url),特别是使用CORS。

我的代码:

package main

import (
     "log"         
     "net/http"
     "github.com/rs/cors"
     "github.com/googollee/go-socket.io"
 )

 func SayHelloWorld(w http.ResponseWriter, r *http.Request) {
     w.Write([]byte("Hello, World!"))
 }

 func main() {

   c := cors.New(cors.Options{
         AllowedOrigins: []string{"*"},
         AllowCredentials: true,
   })

   server, err := socketio.NewServer(nil)
     if err != nil {
         log.Fatal(err)
     }


   server.On("connection", func(so socketio.Socket) {
      log.Println("on connection")
      so.Join("chat")
      so.On("chat message", func(msg string) {
          log.Println("emit:", so.Emit("chat message", msg))
          so.BroadcastTo("chat", "chat message", msg)
      })
      so.On("disconnection", func() {
          log.Println("on disconnect")
      })
   })

   server.On("error", func(so socketio.Socket, err error) {
      log.Println("error:", …
Run Code Online (Sandbox Code Playgroud)

go websocket cors socket.io

0
推荐指数
1
解决办法
8879
查看次数

Tomcat SEVERE:异常启动过滤器CorsFilter,ClassNotFoundException

我正在尝试使用以下类为我的java servlet启用CORS:

package com.prosperity.mobile.core;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CORSFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }

    public void doFilter(ServletRequest servletRequest,
            ServletResponse servletResponse, FilterChain chain)
            throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        // System.out.println("Request: " + request.getMethod());

        HttpServletResponse resp = (HttpServletResponse) servletResponse;
        resp.addHeader("Access-Control-Allow-Origin", "*");
        resp.addHeader("Access-Control-Allow-Methods", "GET,POST");
        resp.addHeader("Access-Control-Allow-Headers",
                "Origin, X-Requested-With, Content-Type, Accept");

        // Just ACCEPT and REPLY OK if …
Run Code Online (Sandbox Code Playgroud)

java tomcat cors catalina

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

允许cors jQuery POST请求Express.js服务器上的Spotify API

为了在我的Web应用程序中获取Spotify API的访问令牌(由他们的Web授权流程指定),我了解到我必须提出POST请求.但是,当我这样做时,我得到了XMLHttpRequest 500 Error由于跨源问题.

我已经想出了如何允许CORS GET请求,但我不知道如何对POST请求执行相同的操作.此链接提供配置提示,但它保留实际路由GETPOST空白.

这是我的Express.js服务器的相关代码:

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});



app.use(express.static(__dirname + '/public')); // looks in public directory, not root directory (protects files)

app.get('/', function(req, res) {
  // res.header("Access-Control-Allow-Origin", "*");
  // res.header("Access-Control-Allow-Headers", "X-Requested-With");
  res.send(__dirname + '\\index.html')
});

app.post('/', function(req, res) {
    res.send(req.body.spotify);
});
Run Code Online (Sandbox Code Playgroud)

(spotifyspotify-web-api-js节点模块).

我以前曾尝试将确切的代码复制app.getapp.post,但这导致服务器崩溃.

这是我程序的JavaScript文件中的一些代码,它打算POST在用户单击一个按钮后发送请求,该按钮将它们带到Spotify的授权路径的开头并批准登录:

$('#spotify').on('click', …
Run Code Online (Sandbox Code Playgroud)

jquery spotify node.js cors express

0
推荐指数
1
解决办法
3250
查看次数

跨域放置调用不适用于Access-Control-Allow-Origin

我面临与跨域PUT调用相关的问题,我已经允许来自服务器端的Access-Control-Allow-Origin仍然无法正常工作.

    @PUT
    @Path("/getresponse/{caller}")
    @Produces({MediaType.APPLICATION_JSON})
    public Response getResponseData(@PathParam("caller") String caller ,@QueryParam("ticket")String ticket ,@FormParam("formParam") String data){


        ResponseBuilder resp;
        System.out.println("name of caller is -> "+ caller);
        System.out.println("query param ticket -> "+ ticket);
        System.out.println("form param data->" + data);
        Employee emp = new Employee();
        emp.setAge(23);
        emp.setName("data");
        Gson gson = new Gson();
        String responseJson =  gson.toJson(emp);
        resp=Response.ok(responseJson);//header("Access-Control-Allow-Origin", "*")
        resp.header("Access-Control-Allow-Origin", "*")
        .header("Access-Control-Allow-Methods", "GET, POST, PUT, OPTIONS");

         return resp.build();
    }
Run Code Online (Sandbox Code Playgroud)

每当我从jquery ajax方法调用它时,它表示 对预检请求的响应没有通过访问控制检查:请求的资源上没有'Access-Control-Allow-Origin'标头

我有相同的上述服务的副本,但有POST签名,当我调用该服务时,它调用服务没有任何问题邮政服务代码是

    @POST
    @Path("/getresponses/{caller}")
    @Produces({MediaType.APPLICATION_JSON})
    public Response getResponseData1(@PathParam("caller") String caller ,@QueryParam("ticket")String ticket …
Run Code Online (Sandbox Code Playgroud)

put jersey cors

0
推荐指数
1
解决办法
1210
查看次数

跨源资源共享策略在CodeIgniter应用程序中阻止Bootstrap中的glyphicons

我正在尝试使用Bootstrap 3.3.6提供的glyphicons,但Chrome阻止了对它们的访问,并显示以下错误消息:

来自" http:// [:: 1] "的字体已被跨源资源共享策略阻止加载:请求的资源上没有"Access-Control-Allow-Origin"标头.原产地" :HTTP //本地主机,因此"是不允许访问.

这是我的.htaccess:

   <IfModule authz_core_module>
      Require all denied
   </IfModule>
   <IfModule !authz_core_module>
      Deny from all
   </IfModule>
   <FilesMatch "\.(ttf|otf|eot|woff)$">
      <IfModule mod_headers.c>
        Header set Access-Control-Allow-Origin "*"
      </IfModule>
   </FilesMatch>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我编辑错了.htaccess吗?

我也尝试header("Access-Control-Allow-Origin: *");在我的header.php文件开头添加,但这也不起作用.我没有想法.

文件夹结构如下:

   application
       controller
       model
       view
           header.php
           index.php
           footer.php
       .htaccess
   system
   assets
       css
       fonts
       images
       js
Run Code Online (Sandbox Code Playgroud)

php codeigniter cors twitter-bootstrap

0
推荐指数
1
解决办法
4006
查看次数

“仅协议方案支持跨源请求:http,数据,chrome,chrome扩展名,https,chrome-extension-resource。”

我正在从localhost:8000提供Angular应用程序,并从localhost:3000提供节点后端。我有一个$ http.get在页面加载和前端日志上运行

Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

上面有多个SO帖子,但是它们都说“不要直接在浏览器中打开文件”,我将全部服务于他们,而不是打开它们。

我的后端已配置为使用CORS,并且在通过邮递员访问它们时,路由有效。

前端:

控制者

后端:

后端

错误:

在此处输入图片说明

host + '/'仅仅是一个常数,引用“本地主机:3000”

node.js cors angularjs

0
推荐指数
1
解决办法
4706
查看次数

CORS跨源资源共享和Json Web Token

在我的应用程序中,我包含了来自不同服务器/域的页面.为简单起见我将把我的主要应用Web应用的一种,另幅B.

某处我,用户已登录后,我将加载从页面通过使用CORS和JWT.在A中,我创建了一个传递给Ajax的编码令牌.Ajax在Header中添加了这个令牌("Authorization" = bearer + encoded token).

B然后使用此令牌解码并获取它所属的usersId和组,并确定用户是否有权访问该资源.此外,Web B中还有一个Access-Control-Allow-Origin = Web A设置,仅接受来自A的请求.

我的问题是关于CORS的安全部分和jwt的使用.在开发过程中,当使用Postman直接访问B中的资源时,我可以轻松绕过" Access-control-allow-origin ".只要我有正确的令牌,资源就会被送回来没有问题!我的意思是只需要一些潜在的黑客获取该编码的字符串,他们就可以轻松地使用Postman查看资源.

在涉及安全部分时,下一步是什么,因为我完全迷失了!

希望我能清楚地解释这个问题.所有帮助都非常感谢

security https http-headers cors jwt

0
推荐指数
1
解决办法
6620
查看次数

ExpressJS没有"Access-Control-Allow-Origin"标头到本地服务器

我知道这个主题似乎已经很多次回答了,但我真的不明白.

  • 我有一个本地angular-fullstack应用程序(Express,NodeJs),它有他的 服务器A(localhost:9000 /).
  • 我有另一个本地前端应用程序B(使用generator-gulp-angular完成的BlurAdmin)(localhost:3000 /)

我的服务器A是使用Express和Nodejs自动生成的:

  app.use(function (req, res, next) {

    res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000');
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
    res.setHeader('Access-Control-Allow-Credentials', false);
    next();
});
Run Code Online (Sandbox Code Playgroud)

在我的应用B中,对我的服务器API的GET请求有效

$http.get('http://localhost:9000/api/shows')
Run Code Online (Sandbox Code Playgroud)

但是有了PUT请求:

$http.put('http://localhost:9000/api/shows/1', object)
Run Code Online (Sandbox Code Playgroud)

我有以下错误:

XMLHttpRequest无法加载http:// localhost:9000/api/shows/1.请求的资源上不存在"Access-Control-Allow-Origin"标头.因此不允许来源' http:// localhost:3000 '访问.响应具有HTTP状态代码403.

我试着用:

  $http({
    method: "PUT",
    url:'http://localhost:9000/api/shows/1',
    headers: {
      'Content-type': 'application/json'
    },
    data:object
  });
Run Code Online (Sandbox Code Playgroud)

不工作,

我试着用:

res.header('Access-Control-Allow-Origin', '*');
Run Code Online (Sandbox Code Playgroud)

不工作,

我已经为chrome安装了*ExtensionAllow-Control-Allow-Origin:**并且没有做任何事情(只返回所有代码但只返回错误403(禁止)

我真的不知道为什么当它与GET一起使用时它不适用于PUT.

你有这个问题吗?谢谢!

更新:1浏览器中的结果: 用于GET

General:
Request URL:http://localhost:9000/api/shows/1
Request Method:OPTIONS
Status Code:200 OK

Request header: …
Run Code Online (Sandbox Code Playgroud)

javascript http node.js cors express

0
推荐指数
1
解决办法
9444
查看次数

Facebook xhr登录:跨域请求被阻止

我有这个问题,当我尝试使用XHR通过Facebook登录我的网站上的用户时,我的请求被阻止了,但是,如果我复制XHR请求的URL并将其粘贴到浏览器中,就可以登录。

因此,这是一个简单的示意图:

在此处输入图片说明

为什么XHR被阻止在浏览器可以访问的相同URL上?

javascript facebook oauth xmlhttprequest cors

0
推荐指数
1
解决办法
1271
查看次数