使用 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"
// ^ ^
在 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"
// ^ ^