带有 jquery.ajax() 的跨域“授权”标头

2023-11-29

我正在尝试发送跨源域并添加自定义“授权”标头。 请参阅下面的代码。

Error:

XMLHttpRequest 无法加载 {url}。 Access-Control-Allow-Headers 不允许请求标头字段授权。

function loadJson(from, to) {
    $.ajax({
        //this is a 'cross-origin' domain
        url : "http://localhost:2180/api/index.php",
        dataType : 'json',
        data : { handler : "statistic", from : from, to : to
        },
        beforeSend : setHeader,
        success : function(data) {
            alert("success");
        },
        error : function(jqXHR, textStatus, errorThrown) {
            alert("error");
        }
    });
}

function getToken() {
    var cookie = Cookie.getCookie(cookieName);
    var auth = jQuery.parseJSON(cookie);
    var token = "Token " + auth.id + ":" + auth.key;
}

function setHeader(xhr) {
    xhr.setRequestHeader('Authorization', getToken());
}

我也尝试过:

headers : { 'Authorization' : getToken() },

在ajax请求中。

难道是jquery-ajax框架阻止了跨域认证?我怎样才能解决这个问题?

Update:

顺便问一下:是否有更安全的方法将 auth.key 存储在客户端而不是存储在 cookie 中? getToken() 将被替换为更复杂的方法,对正文、日期等进行哈希处理。


这是发出 CORS 请求的示例。如果您有权访问服务器(我假设您这样做,因为这是对本地主机的请求),您将需要添加特定于 CORS 的响应标头。最简单的方法是添加以下响应标头:

Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Headers: Authorization

您的服务器还需要配置为响应 HTTP OPTIONS 请求。您可以在此处了解有关发出 CORS 请求的更多信息:http://www.html5rocks.com/en/tutorials/cors/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有 jquery.ajax() 的跨域“授权”标头 的相关文章

随机推荐

  • C++:调用派生类的虚函数

    假设我有一个带有虚函数的类和一个以不同方式实现该虚函数的派生类 假设我还有一个用于存储派生类的基类向量 如果事先不知道派生类是什么 我将如何在向量中执行派生类的虚函数 说明问题的最少代码 include
  • 如何在任意 Java 应用程序中启用抗锯齿功能?

    尽管 Swing 能够提供抗锯齿字体 但许多 Java 应用程序默认情况下并不使用抗锯齿字体 如何强制任意 Java 应用程序使用 AA 字体 适用于我正在运行的应用程序和我正在开发的应用程序 如果您有权访问源代码 则可以在 main 方法
  • 创建色轮的功能[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 这是我多次伪解决但从未完全找到解决方案的问题 问题是想出一种方法来生成N颜色 尽可能区分N是一个参数 我对此的第一个想法是 如何在空间中生成 N 个向量 使彼此之间的距离最大化
  • 单元格悬停时的工具提示图像,Google 电子表格

    我目前正在制作一个必须包含大量图像引用的 Google 电子表格 我想要实现的是 当您将鼠标悬停在单元格上时 会出现图像 如工具提示 I found 这个小部件在 Google Developers 上 但是当我将代码添加到电子表格时什么也
  • IE9 下的 FakeSmile

    我正在尝试在 IE9 中伪造 SMIL 支持假笑 我动态创建 SVG 元素 添加带有 animate 元素的 rect 元素并调用 beginElement IE9 给我一个错误 对象不支持属性或方法 beginElement 静态 SVG
  • 在数据库中存储标签的最有效方法是什么?

    我正在我的网站上实现一个类似于 stackoverflow 使用的标签系统 我的问题是 存储标签以便搜索和过滤标签的最有效方法是什么 我的想法是这样的 Table Items Columns Item ID Title Content Ta
  • 无法在运行时修改mapred.job.name。它不在允许在运行时修改的参数列表中

    我正在尝试在气流中运行一些蜂巢作业 我建立了custome jdbc 连接 您可以在图中看到 我可以通过 Airflow Web ui 查询 Hive 表 数据分析 gt 即席查询 我还想运行一些来自互联网的示例 dag 文件 File N
  • “is”运算符未按预期工作

    看看这段代码 import re ti abcd tq abcdef check abcd re compile abcd print id check abcd search ti print id check abcd search t
  • 检查 Javascript 函数接受多少个参数?

    With arguments length我可以看到有多少参数传递给函数 但是有没有办法确定一个函数可以接受多少个参数 以便我知道应该传入多少个参数 Function length会完成这项工作 在我看来真的很奇怪 function tes
  • tkinter.TclError:图像“pyimage3”不存在

    我在使用一个在屏幕上显示图像两秒钟然后被破坏的函数时遇到问题 当程序运行时 函数初始调用程序正常工作 但如果随后通过 tkinter 中内置的按钮调用该函数 则会出现错误 appcwd os getcwd user32 ctypes win
  • mvc 大写模型 vs 小写模型

    我正在开发一个 MVC 5 项目 对 MVC 来说非常陌生 我注意到代码中的这一行 Html DropDownListFor model gt model ContractorId Model Contractors 页面顶部的指令是 mo
  • 我可以更改之前所有提交中的姓名吗?

    我想在我的所有提交中更改我的名字 姓氏和电子邮件 可以吗 Use git filter branch git filter branch commit filter if GIT AUTHOR NAME Josh Lee then expo
  • 从高于最低要求的 API 级别调用 API

    我编写的应用程序的大部分内容都很好 最低 API 级别设置为 7 我想从级别 8 调用单个 API 使用较低版本 Android 的用户将在没有此 额外功能 的情况下生存 目前我添加了 SuppressLint NewApi 这样我的代码就
  • 如何从 C 方法调用 Objective-C 方法?

    我有一个 Obj C 对象 里面有很多方法 有时一个方法需要调用同一对象内的另一个方法 我似乎不知道如何让 C 方法调用 Obj C 方法 WORKS Obj C 方法调用 Obj C 方法 self objCMethod WORKS Ob
  • c++ 两种数组声明方法之间的区别

    在 C 中声明数组 并为它们分配内存 的可能多种方法中的两种 1 int a 3 2 int b new int 3 我想了解 c 如何以不同的方式对待这两者 A 在这两种情况下 我都可以使用以下语法访问数组 a 1 and b 1 b 当
  • 如何在批处理文件中从txt文件创建数组?

    我有一个包含以下数据的 txt 文件 aaaa 1000 2000 bbb 3000 4000 cccc 5000 ddd 6000 7000 8000 该文件中的行数不固定 我需要数组中每行的第一个标记并打印每个元素 创建数组 setlo
  • ActiveRecord 上的 to_json 时跳过具有 nil 值的属性

    我想知道是否有任何方法可以跳过具有 nil 的属性 ActiveRecord 上 to json 时的值 默认行为是包含 nil 值 有没有一种方法可以让这个值不出现 lars 的答案适用于单个对象 但对于 Active Record 对象
  • 以编程方式将新列添加到 DataGridView

    我有一个绑定到 DataTable 的 DataGridView DataTable 由数据库查询填充 该表包含一个名为 BestBefore 的列 BestBefore 是格式化为字符串的日期 SQLite 没有日期类型 我想以编程方式向
  • 使用以正则表达式作为键的字典进行多个正则表达式替换

    我想使用多个正则表达式对字符串进行多次替换 我还想在一次传递中进行替换 以避免创建字符串的多个实例 假设对于参数 我想进行下面的替换 同时避免多次使用 re sub 无论是显式使用还是循环使用 import re text local fo
  • 带有 jquery.ajax() 的跨域“授权”标头

    我正在尝试发送跨源域并添加自定义 授权 标头 请参阅下面的代码 Error XMLHttpRequest 无法加载 url Access Control Allow Headers 不允许请求标头字段授权 function loadJson