【发布时间】:2017-07-07 21:48:19
【问题描述】:
使用 CDN 提供商并像这样从 CDN 调用静态 HTML 文件。
$.ajax({
url : CDNPATH,
type : "GET",
contentType : "text/plain; charset=utf-8",
async : async,
cache : true,
processData : false,
success : function(response, status, xhr) {
onSuccess(response, status, xhr);
$(document).trigger('contentReady');
}
});
在应用程序的主页上,我有 5 个触发 5 个 OPTION 调用的静态 HTML 文件。可以想象,它会损害性能。我在类似的问题上看到可以使用GET 方法和text/plain 来避免这种情况,我按照上面的方法做了,但是没有用。
如何避免这些预检 OPTIONS 方法?
【问题讨论】:
-
您的浏览器发送的请求标头到底是什么?您可以将它们添加到问题中吗?
-
只有批准的请求和响应标头的简单 GET 应避免 OPTIONS 请求。 (我只是向自己证明了这一点。)我刚刚检查了使用 jQuery v3.1.1 的
$.ajax调用,它没有触发预检,所以我认为它可能是来自的响应标头你的 CDN 使它成为必要......(顺便说一句:你不需要contentType,你没有向服务器发送数据。) -
我仍然对试图找出触发预检的原因感到好奇,但是由于无法看到客户端代码最终在请求中发送的确切请求标头,我们只是在玩一个猜谜游戏。
-
如果我在此处发布域,您介意检查一下吗? @sideshowbarker
-
@DarthVader 是的,如果您有更多信息要发布,我很乐意为您提供帮助——我相信这里的其他人也是如此
标签: javascript jquery ajax http cors