0

我正在尝试使用以下代码:

$('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);
        }
    }
});

我在帖子堆栈溢出帖子中找到了这个

使用打字稿,我在“选项”上得到一个语法错误,说“名称选项没有出现在当前范围内。

有人可以帮助并解释为什么我会收到此错误。我看到 options 没有声明,想知道如果没有声明它来自哪里。

4

2 回答 2

0

就像 JavaScript 一样,在运行时,任何封闭的函数范围,然后在全局范围中搜索一个options变量,如果在任何地方都找不到它,就会抛出异常,因为它没有定义。

因此,大概在您从中提取的示例代码中,您应该假设它options是在其他地方定义的,并且您需要做同样的事情。

于 2013-01-01T14:19:57.520 回答
0

我相信这个小错误是这条线:

 if (s.contentType !== false || options.contentType) {

实际上应该是:

 if (s.contentType !== false || s.contentType) {

因为您的参数sajaxOptionsjQuery 传递给您的函数的。

于 2013-01-03T16:49:39.950 回答