我正在尝试使用以下代码:
$('body').bind('ajaxSend', function (elm, xhr, s) {
if (s.hasContent && securityToken) { // handle all verbs with content
var tokenParam = "__RequestVerificationToken=" + encodeURIComponent(securityToken);
s.data = s.data ? [s.data, tokenParam].join("&") : tokenParam;
// ensure Content-Type header is present!
if (s.contentType !== false || options.contentType) {
xhr.setRequestHeader( "Content-Type", s.contentType);
}
}
});
中找到了这个
使用typescript我在“options”上遇到语法错误,说“名称选项不会出现在当前作用域中。
有人可以帮忙解释我收到此错误的原因。我看到选项没有被声明,并且想知道它来自哪里,如果它没有被声明。
答案 0 :(得分:0)
就像JavaScript一样,在运行时,在任何封闭的函数作用域和全局作用域中搜索options
变量,如果在任何地方都找不到,则抛出异常,因为它没有被定义
因此,大概在您从中提取的示例代码中,您应该假设options
在其他位置定义,并且您需要执行相同的操作。
答案 1 :(得分:0)
我认为这一行存在轻微的错误:
if (s.contentType !== false || options.contentType) {
实际应该是:
if (s.contentType !== false || s.contentType) {
由于您的参数s
是jQuery传递给您的函数的ajaxOptions
。