2013-03-11 66 views
-1

看起來我已經發現自己又一次在相當的鹹菜。從我理解通過搜索這個問題是,如果varint,可能會發生此錯誤。但就我的業餘JavaScript技能而言,我並沒有在我的完全stolen code中檢測到這樣的事情。未捕獲的語法錯誤:意外的標識符

var createAttachment = function(file) { 
    var uid = [guava_uid, (new Date).getTime(), 'raw'].join('-'); 

    var data = new FormData(); 

    data.append('attachment[name]', file.name); 
    data.append('attachment[file]', file); 
    data.append('attachment[uid]', uid); 

    $.ajax({ 
     url: '/attachments', 
     data: data, 
     cache: false, 
     contentType: false, 
     processData: false, 
     type: 'POST', 
    }).error(function(){ 
     console.log('could not upload'); 
    }); 

    var absText = '![' file.name + '](/attachments/' + uid + ')'; // <<< ERROR 
    $('#editor textarea').insertAtCaret(absText); 
}; 

guava_uid之前的任何代碼定義如上guava_uid = "1";,我試圖它作爲guava_uid = 1;爲好,但同樣的結果。像往常一樣,所有的幫助都表示讚賞。

+1

以下兩個答案都不正確。你需要在''[''和'file.name'之間加號。 – 2013-03-11 14:35:13

+0

當創建一個新的Date對象時,不需要使用'()'嗎? – Teemu 2013-03-11 14:36:23

+0

正確!這種微小的事情完全滑脫了我的想法。謝謝@RobW – Codefoe 2013-03-11 14:37:39

回答

0
$.ajax({ 
    url: '/attachments', 
    data: data, 
    cache: false, 
    contentType: false, 
    processData: false, 
    type: 'POST', 
//   ^
//   should not be there 
}).error(function(){ 
    console.log('could not upload'); 
}); 

和:

var absText = '![' file.name 
//    ^
//   missing + 
+0

它不需要*在那裏,但它在技術上也不是無效的。我認爲只有Internet Explorer在對象文字中使用尾隨逗號(可能仍然存在)。 – 2013-03-11 14:38:02

+0

@AnthonyGrist IE使它在技術上無效;-) – 2013-03-11 14:40:55

0

嘗試

var uid = ["guava_uid", (new Date).getTime(), 'raw'].join('-'); 

當我試圖用這樣的代碼:

var uuid = some-uid-like-int 

我已經得到了同樣的錯誤,但當我像使用字符串一樣使用uuid時 - 一切正常。

+0

我已經在我的問題中提到,無論是否int,這並不重要。 – Codefoe 2013-03-11 14:39:50

相關問題