2015-01-08 69 views
0

我在ASP中使用Response.Write通過使用Mandrill API的Javascript發送電子郵件,我已經檢查過這段代碼至少5次,語法看起來正確我,我不知道爲什麼這個錯誤被報告。Javascript代碼未終止的字符串常量

if err.number = 0 then 
Response.Write("<script language=""javascript"" type=""text/javascript""> 
    $.ajax({ 
    type: 「POST」, 
    url: 「https://mandrillapp.com/api/1.0/messages/send.json」, 
    data: { 
     ‘key’: ‘MYAPIKEY’, 
     ‘message’: { 
     ‘from_email’: ‘MAIL’, 
     ‘to’: [ 
      { 
       ‘email’: ‘MAIL’, 
       ‘name’: ‘ABC’, 
       ‘type’: ‘to’ 
      }, 
      ], 
     ‘autotext’: ‘true’, 
     ‘subject’: ‘TEST’, 
     ‘html’: ‘TEST’ 
     } 
    } 
    }).done(function(response) { 
    console.log(response); 
    }); 
    </script>") 
end if 

我會感謝一些幫助,因爲我是初學者。

+0

在黑暗中拍攝刺,但我認爲奇引號可能導致該問題(否則會產生一個問題,在未來)。用'''或者''''替換''''''''(逃避不會影響你在ASP中的Response.Write調用)稍微不同的說法,在你的腳本標籤是逃避是啊? – Turnerj

+0

您是否將該腳本返回給瀏覽器執行?如果是這樣的話,你真的不希望以這種方式公開你的Mandrill API密鑰。 – bvanvugt

回答

1

您必須對ASP中相同字符串中的多行使用行續字符_。如果您要格式化response.write的輸出,則需要使用vbcrlf輸出換行符。

我已經在你的代碼替換"

<% 
if err.number = 0 then 
Response.Write("<script language=""javascript"" type=""text/javascript"">" & vbcrlf &_ 
" $.ajax({" & vbcrlf &_ 
" type: ""POST""," & vbcrlf &_ 
" url: ""https://mandrillapp.com/api/1.0/messages/send.json""," & vbcrlf &_ 
" data: { " & vbcrlf &_ 
"  'key': 'MYAPIKEY'," & vbcrlf &_ 
"  'message': { " & vbcrlf &_ 
"  'from_email': 'MAIL',"& vbcrlf &_ 
"  'to': [" & vbcrlf &_ 
"   {" & vbcrlf &_ 
"    'email': 'MAIL'," & vbcrlf &_ 
"    'name': 'ABC'," & vbcrlf &_ 
"    'type': 'to'" & vbcrlf &_ 
"   }," & vbcrlf &_ 
"   ]," & vbcrlf &_ 
"  'autotext': 'true', "& vbcrlf &_ 
"  'subject': 'TEST'," & vbcrlf &_ 
"  'html': 'TEST'" & vbcrlf &_ 
"  }" & vbcrlf &_ 
" }" & vbcrlf &_ 
" }).done(function(response) {" & vbcrlf &_ 
"  console.log(response);" & vbcrlf &_ 
" });" & vbcrlf &_ 
" </script>") 
end if 
%> 
相關問題