将 CORS 添加到 ajax 标头时的 a.toLowerCase
Posted
技术标签:
【中文标题】将 CORS 添加到 ajax 标头时的 a.toLowerCase【英文标题】:a.toLowerCase when add CORS to the ajax header 【发布时间】:2016-01-25 12:08:54 【问题描述】:我有一个在线的 Django 应用程序和一个需要在标题中添加特殊 token
的 API。
当我将它添加到 $.ajaxSetup
时,它仍然需要我 CORS Access-Control-Allow-Origin
标头中的参数。
添加时出现错误:TypeError: a.toLowerCase is not a function
奇怪的是,当我在 HttpRequester firefox 插件中使用相同的代码时,因为我得到了预期数据的正确响应。
代码:
$.ajaxSetup(
beforeSend: function(xhr)
xhr.setRequestHeader(
'CORS': 'Access-Control-Allow-Origin',
'token': 'tokenStringHere'
);
);
$.ajax(
url: 'myPathToOnlineAppWithApiString',
type: 'GET',
contentType: 'application/json',
headers:
).success(function(result)
console.log('yes!');
).error(function(error)
console.log('no!');
);
【问题讨论】:
【参考方案1】:setRequestHeader
接受两个字符串,即标题名称及其值,而不是对象。有关详细信息,请参阅 jQuery 文档的 $.ajax
条目的 jqXHR 部分。
您应该将参数中的对象替换为两个调用以分别设置这些标头:
$.ajaxSetup(
beforeSend: function(xhr)
xhr.setRequestHeader('CORS', 'Access-Control-Allow-Origin');
xhr.setRequestHeader('token', 'tokenStringHere');
);
【讨论】:
这让我更进一步 - 谢谢! (事实证明,一个应用程序限制了所有 CORS 访问,所以我不得不请维护它的程序员为我打开它) - 顺便说一句。我很惭愧它在文档中 - 但今天对我来说,在提问之前仔细检查它是一个教训。 没问题,很高兴为您提供帮助以上是关于将 CORS 添加到 ajax 标头时的 a.toLowerCase的主要内容,如果未能解决你的问题,请参考以下文章
是否可以将 CORS 标头添加到来自 Tomcat 容器中 j_security_check 的响应