2009-11-20 36 views
3

我正在使用jquery對REST Web服務進行$ .ajax()調用。根據我找到的文檔,我需要使用jsonp作爲數據類型才能進行這種跨域調用(實際上返回的是XML文檔)。但是,在運行我的代碼時,我收到錯誤「XML不能是整個程序」。XML不能是整個程序

有沒有人知道這個錯誤意味着什麼以及如何解決它(如果有的話)?谷歌搜索沒有提供太多的信息,關於這個問題的其他stack overflow post也沒有幫助我。

如果您還有其他問題,請告訴我。

+0

你能詳細說明錯誤來自哪裏嗎?它是來自web服務的響應嗎? – 2009-11-20 16:13:20

+0

我不認爲你需要jsonp如果響應類型是xml – geowa4 2009-11-20 16:19:37

+0

Firebug是什麼向我顯示這個錯誤。 – cmessier 2009-11-20 16:34:15

回答

1

對我來說,就像你在你的web應用程序中包含一個包含<script></script>的* .js文件,這是不需要的。這些標籤讓你的代碼看起來像一個大的XML文檔給解析器。

+0

我很抱歉,如果我沒有得到這個,但你能澄清你的答案?我不認爲我明白你的意思是包含在代碼中。 謝謝。 – cmessier 2009-11-20 16:32:53

+0

這裏是我的代碼: \t \t \t JavaScript的實踐 \t \t \t \t \t \t \t \t \t Click to Test \t \t

\t 我scripts.js中文件不包含任何
1

如果您需要通過需要JSON的連接返回XML,則必須包裝您的xml。因此,舉例來說,如果你的文件看起來是這樣的:

<magic8ball> 
    <outcome_looks_doubtful/> 
</magic8ball> 

然後,你需要做這樣的事情:

{"value": "<magic8ball> 
    </outcome_looks_doubtful/> 
</magic8ball"} 

然後你身邊掠過JSON,像你JSONP數據類型需要。你所要做的就是提取你的xml,然後關閉並運行。

+0

+1,這是你必須通過JSONP處理XML的方式。 – jvenema 2009-11-20 16:47:59

相關問題