使用UUID时Ajax调用出错

时间:2015-07-08 06:40:19

标签: javascript jquery ajax uuid

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

  

未捕获的TypeError:非法调用`

以下是该链接的示例:

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无效?

2 个答案:

答案 0 :(得分:2)

您需要将值放在引号中,以便将其识别为字符串。

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

答案 1 :(得分:2)

由于UUID为string,您需要将UUID包装在引号中。

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