小编sid*_*ker的帖子

CORS 发出相同的控制器,一种方法可以,另一种方法不行

我遇到了非常奇怪的错误。

我在控制器中有两种方法,它们由 angular js http get 事件调用。

第一个工作正常,第二个是抛出 CORS 错误,不确定这怎么可能,因为它们都在同一个控制器中。

这是我得到的错误: 在此处输入图片说明

这些是我在 angularjs 中所做的调用:

 $http({
        url: 'http://localhost:52876/api/Admin/GetLoanInfo',
        method: "GET",
        params: { loanID: querystringParam }
    }).success(function (data, status) {
        console.log(data);
        $scope.LoanDetailsVM.LoanStatus = data.LoanStatus;
    }).error(function (data, status) {
        console.log(data);
    });

    $http({
        url: 'http://localhost:52876/api/Admin/GetLoanCovenants',
        method: "GET",
        params: { loanID: querystringParam }
    }).success(function (data, status) {
        console.log(data);
    }).error(function (data, status) {
        console.log(data);
    });
Run Code Online (Sandbox Code Playgroud)

和控制器方法:

[HttpGet]
[Route("api/Admin/GetLoanInfo")]
public async Task<IHttpActionResult> GetLoanInfo(int loanID)
{

        LoanApplication newApplication = null;
        newApplication = db.LoanApplications.FirstOrDefault(s => s.LoanId == loanID);
        return …
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-web-api angularjs angular-http

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

Ruby-on-rails 测试在呈现 JS 视图时引发 InvalidCrossOriginRequest

我正在测试一个控制器,它具有以 .js.erb 格式呈现视图的动作。对这些操作的测试会引发以下错误:

Minitest::UnexpectedError: ActionController::InvalidCrossOriginRequest: 安全警告:另一个站点上的嵌入标记请求受保护的 JavaScript。如果您知道自己在做什么,请继续并禁用此操作的伪造保护以允许跨源 JavaScript 嵌入。

伪造保护导致此错误,因为当我对这些操作设置异常时,它可以,但我不想禁用它。

这是我的控制器:

class TasksController < ApplicationController

  def new
    # TODO add blah later
    @task = Task.new
    render 'tasks/show_form.js.erb'
  end

  def create
    # FIXME there is bug here
    @task = Task.new(task_params)
    @task.user = current_user
    authorize! :create, @task
    save_task
  end

  def edit
    @task = Task.find(params[:id])
    authorize! :edit, @task
    render 'tasks/show_form.js.erb'
  end

  def update
    @task = Task.find(params[:id])
    @task.assign_attributes(task_params)
    authorize! :update, @task
    save_task
  end

  def destroy
    @task = Task.find(params[:id])
    authorize! :destroy, @task
    @task.destroy
    @tasks = …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails protect-from-forgery

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

Javascript XMlHttp请求到另一个域

我正在使用 Javascript XMlHttprequest api 发出跨站点 http 请求,以在 post 方法中发送和检索数据。目的是使用第 3 方提供的此服务发送短信。但是我无法这样做,因为浏览器不允许这样做,并收到以下错误响应“跨源请求被阻止:同源策略不允许读取http://trans.smsfresh.co/api上的远程资源” /sendmsg.php。(原因:CORS 标头 \xe2\x80\x98Access-Control-Allow-Origin\xe2\x80\x99 缺失)。”

\n\n

是否可以使用 html 和 javascript 来实现这一点?

\n

javascript xmlhttprequest cross-domain cors

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

firebase存储cors奇怪的行为

我正在构建一个应用程序,用户看到一组缩小的图像,然后按“确定”让应用程序下载所有原始文件,将它们放入 zip 文件并发送 zip 文件。

该应用程序使用聚合物、聚合物火、火力(包括存储)。

在上传图像的过程中,我将原始文件和缩小后的文件的下载 url 和存储引用都保存在数据库中。

当我将下载 url 放在 Iron-image 元素中以在浏览器中显示图像时,一切正常,缩小后的图像显示在屏幕上。当我尝试通过 XMLHttpRequest() 下载全尺寸图像时,出现 Cors 错误。我不明白为什么,两个请求都来自同一个应用程序,为什么两个不同的 cors 响应?

这是 XMLHttpRequest() 的代码(主要从 firebase 文档中复制):

for (var z = 0; z < visita.immagini.length; z++) {
  var immagine =visita.immagini[z]

  var storage = firebase.storage();
  var pathReference = storage.ref('immagini/'+ immagine.original.ref);
  pathReference.getDownloadURL().then(function(url) {

    var xhr = new XMLHttpRequest();
    xhr.responseType = 'blob';
    xhr.onload = function(event) {
      var blob = xhr.response;
      console.log(blob);
    };
    xhr.open('GET', url);
    xhr.send();
  }).catch(function(error) {
      console.log(error);
  });

}
Run Code Online (Sandbox Code Playgroud)

这是错误响应:

XMLHttpRequest 无法加载 ***** [图片链接]*****。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问Origin …

javascript xmlhttprequest cors firebase firebase-storage

4
推荐指数
2
解决办法
5274
查看次数

CORS允许来源限制不会导致服务器拒绝请求(仍然可以在浏览器中访问该站点)

我正在使用Spring Boot v1.5.1,似乎我对CORS起源的限制不起作用.

我的application.properties文件包含以下行(ref1 ref2).

endpoints.cors.allowed-origins=http://mydomain.io
Run Code Online (Sandbox Code Playgroud)

我的REST控制器如下所示.

@RestController
@CrossOrigin
@RequestMapping("/api/car")
public class CarCtrl {
  @Autowired
  private CarService carService;

  @GetMapping
  public Car get() {
    return carService.getLatest();
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我打开浏览器并输入时,http://localhost:8080/api/car我仍然可以访问REST端点.

我也尝试按如下方式更改我的注释,但这不起作用.

@CrossOrigin("${endpoints.cors.allowed-origins}")
Run Code Online (Sandbox Code Playgroud)

关于我做错了什么的任何想法?

请注意,我没有WebMvcConfigurerAdapter像这篇文章那样使用.我是否真的需要扩展此类以明确控制原点?我认为@CrossOrigin除了属性文件设置之外的注释将能够控制允许的原点(而不是必须以编程方式执行).

java spring spring-mvc cors spring-boot

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

CouchDB + 凭据 + 原始通配符的 CORS 问题

我正在尝试在 flow.ch 上从 Cloudant 迁移到 Jelastic。在本地测试(离子服务)时,我遇到了 pouchdb 的 CORS 错误。

除了我缺少的 CouchDB 之外,Jelastic 中还有其他配置吗?

XMLHttpRequest 无法加载http://xxx.flow.ch/xxx。对预检请求的响应未通过访问控制检查:当请求的凭据模式为“包含”时,响应中“Access-Control-Allow-Origin”标头的值不得为通配符“*”。因此,不允许访问Origin ' http://localhost:8100 '。XMLHttpRequest 发起的请求的凭证模式由 withCredentials 属性控制。

  1. 我在 Jelastic 上配置了一个 CouchDB 并激活了 CORS。 在此处输入图片说明 在此处输入图片说明

  2. 通过 CURL 正常访问有效。从 Cloudant 复制到 Jelastic 也同样有效。

  3. 我尝试使用 Chrome 扩展程序启用“Allow-Control-Allow-Origin: *”

couchdb cors jelastic ionic2

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

无法从前端 JavaScript 访问跨域响应标头

我正在使用ReactJS和create-react-app构建一个简单的 Web 应用程序。

我在 Heroku 上设置了一个后端 API,我可以在其中发出POST请求。一切正常,除了:

当我使用 fetch API 发出 POST 请求时,响应是 100% 正确的,但它只给了我 2 个标准标头。我想获得我的自定义标题。我在响应中添加了公开标头,这是情节扭曲:当我从 Chrome 检查工具或邮递员(API 工具)查看标头时,它会显示所有标头,包括我的自定义标头。这是我正在使用的提取代码 -

fetch(theUrl, {
  method: 'POST',
  body: JSON.stringify({
    "placeholder": "placeholder"
  })
})
.then(function(res) {
  console.log(res.headers.get('CUSTOM_HEADER_NAME'));
})
Run Code Online (Sandbox Code Playgroud)

如果有什么不同,这个 fetch 方法是从 ReactJS 组件主体之外的函数调用的。

自定义标题的名称Image-Identification-Path,并在我的响应头报头Access-Control-Expose-Headers的Image-Identification-Path。这是邮递员的图片

摘要:如何使用 fetch 获取自定义标头?

javascript http-headers cors reactjs fetch-api

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

从视频获取MediaStreamTrack(音频)

我想在从画布录制的同时从视频元素录制音频。我有

var stream = canvas.captureStream(29);
Run Code Online (Sandbox Code Playgroud)

现在我将视频的audioTrack 添加到流中。

var vStream = video.captureStream();
stream.addTrack(vStream.getAudioTracks()[0]);
Run Code Online (Sandbox Code Playgroud)

但这会降低添加每个视频的性能。由于 captureStream() 对视频的处理非常繁重,并且还需要在 Chrome 中打开一个标志。有没有一种方法可以从视频元素仅创建音频 MediaStream,而不使用 captureStream()。

javascript google-chrome html5-video html5-audio mediastream

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

SOAP 请求出现问题。'访问控制允许来源'

我在发送 SOAP 请求时遇到问题。我研究过这个主题,并在此处和其他地方看到了很多关于该主题的帖子,但没有任何内容对我有用或真正解决了我遇到的问题。为了更具体地说明我正在尝试做的事情,我正在尝试访问 BrightSign 网络上的 API。文档链接位于此处。我尝试通过 html 页面上的 javascript 函数运行我的请求,但没有成功。我每次都会收到“没有‘访问控制允许来源’”错误。我安装了一个附加组件,我认为它是绕过此问题的修复程序,尽管我没有收到 Access-Control-Allow-Origin 错误,但收到了 200 代码错误。我最大的问题是我已经下载了 SoapUI 并通过那里运行了一个请求。当这样做时,我收到了预期的回复!我尝试将 SoapUI 中的原始 XML 复制并粘贴到我的测试页面中,但没有成功。我每次都会遇到相同的错误。对此的任何帮助将不胜感激。

谢谢

这是我正在使用的页面的代码:

function soap(){
            var xmlhttp = new XMLHttpRequest();
            xmlhttp.open('POST', 'https://api.brightsignnetwork.com/2014/12/SOAP/Basic/', true);

            // build SOAP request
            var sr =
                '<soapenv:Envelope xmlns:soap="https://api.brightsignnetwork.com/2014/12/SOAP/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">' +
                    '<soapenv:Header>' +
                        '<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">' +
                            '<wsse:UsernameToken wsu:Id="UsernameToken-541861B587A894A0A714970165483407">' +
                                '<wsse:Username></wsse:Username>' +
                                '<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"></wsse:Password>' +
                                '<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">tlWiCWeD9E8JEaY00RfAhA==</wsse:Nonce>' +
                                '<wsu:Created>2017-06-09T13:55:48.340Z</wsu:Created>' +
                            '</wsse:UsernameToken>' +
                        '</wsse:Security>' +
                    '</soapenv:Header>' +
                    '<soapenv:Body>' +
                        '<soap:GetDynamicPlaylistByName>' +
                            '<soap:name></soap:name>' +
                            '<soap:loadContent></soap:loadContent>' +
                        '</soap:GetDynamicPlaylistByName>' …
Run Code Online (Sandbox Code Playgroud)

javascript xml http xmlhttprequest cors

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

如何调用中等RSS源

Medium有一个RSS源,可通过https://medium.com/feed/[@username]获得.我正在尝试使用XMLHTTPRequest获取所有博文.当我在本地测试时,我遇到了CORs错误.当我打开CORs Chrome扩展程序时,出现401错误.有任何想法吗?有没有人成功调用Medium RSS?

javascript rss frontend localhost cors

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