首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript/JQuery在OPTIONS印前检查API中发送自定义标题

Javascript/JQuery在OPTIONS印前检查API中发送自定义标题
EN

Stack Overflow用户
提问于 2017-01-08 05:17:18
回答 1查看 976关注 0票数 0

代码转储:

代码语言:javascript
运行
复制
$.ajax({
   type: 'GET',
   dataType: 'json',
   url: api,
   xhrFields: {
     withCredentials: true
   },
   beforeSend: function (xhr) {
     xhr.setRequestHeader('Authorization', "Basic [my auth token]");
   },
   success: function(jd) {
      console.log(jd.stringify());
   }
});

问题是,当我包含一个beforeSend时,Chrome和火狐会发送OPTIONS预检,但是OPTIONS请求被应用程序接口拒绝,因为它不知道如何处理OPTIONS请求,并将其视为GET,看不到Authorization头并拒绝请求。

我能让它工作的唯一方法是强制浏览器不发送OPTIONS请求,或者在请求中包含我的头文件。我无法修改我正在使用的API。

如果有人能给我建议,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2017-01-11 07:06:58

浏览器发送印前检查请求的原因是您使用的是自定义headers。请。阅读如何避免印前检查请求(内容类型应该是文本或html,没有自定义标题)如果你不能改变服务器端,最后的机会让它工作是创建您的自定义代理(例如,您可以创建节点服务器和节点应用程序将接受您的请求,并将它们转发到这些Api,然后您将拥有自己的服务器,甚至在某些域中,此代理服务器将发送CORS请求到另一个服务器域。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41526654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档