$.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个静态HTML文件,该文件会触发5个OPTION调用.可以想象,它会损害性能.我曾在类似的问题上看到,使用GET方法和text / plain可以避免这种情况,如上所述,但是这种方法不起作用.
如何避免使用这些印前检查OPTIONS方法?
解决方法:
字符集参数的存在可能会导致预检?根据规格,浏览器为required to ignore any params and only consider the MIME type,但可能不符合要求.
A CORS-safelisted request-header is a header whose name is one of
另外,我看不到您的请求会触发预检.也许我想念一些东西…
更新2017-02-20
根据information provided in a comment above确定,该站点的源似乎包含具有以下内容的脚本元素:
window["_tsbp_"] = { ba : "X-TS-BP-Action", bh : "X-TS-AJAX-Request"};
…并且我没有逐步完成其余代码,以了解产生了什么效果,但是似乎正在导致X-TS-AJAX-Request标头添加到XHR请求中,从而触发了预检.
我想这里的总的收获是:每当您发现请求触发浏览器进行预检但您不知道为什么时,排除故障的步骤号可能应该是使用浏览器devtools来确切找出代码的请求标头导致被发送出去.