当前位置: 首页 > 面试题库 >

Chrome为什么取消CORS OPTION请求

麻昌翰
2023-03-14
问题内容

在我的应用中,我正在创建从HTTP到HTTPS的AJAX请求。这意味着我需要CORS。因此,我向jQuery.ajax添加了一些标题和参数并对其进行了测试。在Firefox中,一切正常,但在Chrome中,一切正常。Chrome会“杀死”每一个预先提出的请求(选项)。

jQuery脚本:

$(document).on('click', 'a.ajax', function(e) {
    e.preventDefault();
    $.ajax(this.href, {
        type: 'GET',
        dataType: 'json',
        crossDomain: false,
        headers: {'X-Requested-With': 'XMLHttpRequest'},
        xhrFields: {
            withCredentials: true
        }
    });
    return false;
});

HTTP转储:

> OPTIONS /foo HTTP/1.1
> User-Agent: curl/7.29.0
> Host: local.bar.cz
> Accept: */*
> Access-Control-Request-Headers:accept, origin, x-requested-with
> Access-Control-Request-Method:GET
> Origin:http://local.bar.cz
> 
< HTTP/1.1 204
< Server: nginx/1.2.7
< Date: Wed, 27 Feb 2013 15:06:54 GMT
< Content-Type: text/html; charset=utf-8
< Connection: keep-alive
< X-Powered-By: Nette Framework
< X-Frame-Options: SAMEORIGIN
< Access-Control-Allow-Origin: http://local.bar.cz
< Access-Control-Allow-Credentials: true
< Access-Control-Allow-Headers: accept, origin, x-requested-with
< Access-Control-Allow-Methods: OPTIONS, GET, POST, HEAD
<

有人知道为什么Chrome会终止此请求吗?


问题答案:

也许您的https服务器具有不受信任的证书。如果是这样,请尝试首先使用浏览器访问该URL,然后接受不受信任的连接。



 类似资料:
  • null null null 禁用Javascript确实改变了行为,我们看到请求仍然被取消,但没有看到它像启用Javascript时那样重新加载原始页面。 其他意见: 单击Chrome DevTools设备模拟中的链接不会导致取消请求,只会直接使用设备。

  • 这是我的axios依赖: 这是我的代码 这段代码有什么问题么?请求并不会取消

  • 问题内容: 我写了一个简单的基准测试,以找出在通过按位和计算数组时是否可以消除边界检查。基本上,这就是几乎所有哈希表的作用:它们计算 作为一个指数到的,其中是或派生值。该结果表明,范围检查没有得到消除。 我的基准测试的想法很简单:计算两个值和,保证两个值都是有效的数组索引。 是循环计数器。当它用作数组索引时,将取消边界检查。 将计算为,其中每次迭代中都有一些值更改。当它用作数组索引时,不会消除边界

  • 我们最近在大学里做了一个关于几种语言的编程专题的讲座。 讲师写下了以下功能: 虽然我完全理解就可读性而言这也是非常糟糕的风格,但他的主要观点是,这部分代码在生产代码中工作得很好,直到它们实现了高优化级别。然后,代码将什么也不做。 他说所有对变量< code>tmp的赋值都会被编译器优化掉。但是为什么会这样呢? 我知道在某些情况下,变量需要声明为易失性,以便编译器不会触及它们,即使他认为它们从未被读

  • 我有一个函数来检查结果是否在服务器上。 有时由于未知原因取消重新加载: 如何找出重装取消的原因? 因为请求被取消,所以详细信息窗格中没有任何信息。即使一些字节已经发送到服务器(或者甚至从服务器返回到浏览器),chrome也不会显示它们。

  • 问题内容: 以下是ajax请求。 这就是delete.php 运行代码后,它将成功删除文件,但不会显示任何消息。 我也尝试将ajax请求更改为: 仍然不显示该消息。所以我想在delete.php文件中出了点问题。请帮忙。 问题答案: 进行jquery + ajax + php的最佳方法如下: jQuery的: PHP: