2013-04-09 67 views
1

我在使用JavaScript遠程處理時遇到錯誤,並在我的Force.com網站上打開了我的URLReWriter。在關閉URL ReWriter的情況下使用JavaScript Remoting時,不會發生該錯誤。Salesforce:URL重寫器和JScript Remoting:異常解析json響應:'意外的標記<'。登錄?

該錯誤是如下

異常錯誤解析JSON響應: '意外令牌<'。登錄?

我很困惑,爲什麼發生這種情況。如果我沒有在我的URL ReWriter(或Visualforce頁面)中登錄的檢查,爲什麼會出現這種情況?

有沒有人曾經遇到過類似於此之前?我注意到以下https://salesforce.stackexchange.com/questions/4112/possible-oauth-remote-action-bug,但在我的情況下,我沒有在我的網站上使用我創建的測試頁的身份驗證&我想知道爲什麼它提到「登錄」。

URLRewriters和JavaScript Remoting目前不可能一起工作嗎?

在此先感謝您的幫助。

回答

1
  1. 你可以嘗試調試它的服務器端?將「your_site_name訪客用戶」添加到調試日誌並嘗試操作。如果幸運的話,你會看到出錯的地方(在重寫器中的遠程操作?),我懷疑這個未被捕獲的問題導致重定向到維護頁面(這將是HTML,而不是JSON)...
  2. 如果不使用Firebug或類似工具檢查請求&的詳細響應?或event.status
  3. 它可能是相關的權限? http://www.salesforce.com/us/developer/docs/pages/Content/pages_js_remoting.htm或者如果你要返回html - 我想你應該有{escape:true}
  4. 這是否發生在任何瀏覽器?也許有些東西不喜歡由URL重寫器引起的重定向。我見過的情況下(不與Salesforce雖然)殺毒軟件有時在某些網站的末尾添加一些奇怪的javascript和他們列入白名單...
0

錯誤也可能發生因解析錯誤當頁面收到來自遠程操作功能的狀態消息時。

例如我嘗試遠程動作與附件

@RemoteAction 

public attachment attach(String body){ 
attachment a=new attachment(); 
a.body=body; 
a.name='a.png' 

insert a; 

return a; 

} 

在上面的代碼我收到錯誤,因爲SFDC不分析附件object.SO如果有分析器錯誤,我們得到這個消息。

作爲一個解決方法,我發送一個包裝。因此,我會建議調查遠程操作的返回參數,也包裝它作爲解決方法。

希望這會有所幫助

+0

嗨Mohith,謝謝你的建議和幫助。我的一位同事設法找到解決方案。 – SalesforceQueries 2013-04-10 10:16:24

+0

在我的URL重寫器「全局PageReference mapRequestUrl(PageReference rewrittenUrl){」函數,如果我將我的頁面引用設置爲「PageReference returnPageReference = Page.MyPage;」除了遠程功能之外,URL重寫將適用於所有內容。 對於Javascript遠程動作,pagereference不應該有「/ apex/MyPage」,因此認爲它需要登錄才能通過apex頁面運行。 爲了避免使用「」PageReference returnPageReference = new PageReference('../ MyPage');「當設置pagereference返回一個遠程動作時。 – SalesforceQueries 2013-04-10 10:17:42