使用 UUID 时 Ajax 调用出错

Error in Ajax call when using UUID

在 link 单击时,我调用了一个进行 Ajax 调用的方法。问题是当我在第一个参数中使用 UUID 字符串时会抛出错误:

Uncaught TypeError: Illegal invocation`

下面是 link 的示例:

onclick="fetchQuestion(ff8080814e6c440b014e6c464f660001,2);return false"

但是当我在第一个参数中使用简单 ID 时,它工作正常。示例:

onclick="fetchQuestion(3,2);return false"

这里是 fetchQuestion 方法的实现:

function fetchQuestion(questionId, index){
    $.ajax({
        url: '${createLink(action: 'fetchQuestion')}',
        data: {
            testAttemptedId: ${testAttemptedId},
            index: index,
            id: questionId,
            grantAssessmentId: ${grantAssessmentId}
        },
        cache: false,
        success: function(html) {
            $('div[id="questionContent"]').html(html);
        }
    });
}

为什么它在 UUID 的情况下不起作用?

您需要将值放在引号中才能将其识别为字符串。

onclick="fetchQuestion('ff8080814e6c440b014e6c464f660001',2);return false"

请注意,您应该使用 Javascript 来附加您的事件,因为它可以更好地分离关注点。试试这个:

<a href="#" data-uuid="ff8080814e6c440b014e6c464f660001" daat-index="2">Foo</a>

然后你可以在 JS 中挂钩它:

$(function() {
    $('a').click(function(e) {
        e.preventDefault();
        fetchQuestion($(this).data('uuid'), $(this).data('index'));
    });
});

由于 UUID 是 string,您需要将 UUID 括在引号中。

onclick="fetchQuestion('ff8080814e6c440b014e6c464f660001', 2);return false"
//                     ^                                ^