2011-06-15 84 views
1
var on_show_info_agile = function() { 
    alert("aa"); 
    request_meta_info = $.ajax({ 
     url: search_metadata + current_doc_info.id, 
     type: 'GET', 
     async: false, 
     dataType: "jsonp", 
     success: on_get_metadata, 
     error: on_get_metadata_error 
    }); 
}; 

如何解決此問題?我試圖更改dataType"script",我在firebug中得到相同的錯誤;缺失;在聲明之前我檢查Firebug中的響應?

missing ; before statement

<?xml version="1.0" encoding="UTF-8"?> 
<response> 
<lst name="responseHeader"><int name="status">0</int><int name="T">3</int><lst name="params"><str name="q">83779616</str><str name="callback">jsonp1308182704622</str></lst></lst><result name="response" numFound="1" start="0"><doc><str name="number">2716837</str><str name="itle">Wire</str><str name="name">Designated </str><str name="name">S.</str><date name="">2009-03-03T08:00:00Z</date><str name="claims">8</str><str name="id">810414</str><str name="name">D.</str><date name="date">2010-08-24T07:00:00Z</date><str name="_id">83616</str><str name="name">Non Provisional</str><date name="_date">2008-03T08:00:00Z</date><arr name=id"><str>3260</str><str>290</str><str>2510</str></arr><str name="_number">08CA</str><date name="te">201-03T08:00:00Z</date><str name="e">M</str><str name="">Application</str><str name="ry_code">CA</str><str name="ame">Canada</str><str name="_claims">74</str><arr name="inventors"><str>Kd D.</str><str>G</str><str>Pi</str></arr><str name="key">83</str><arr name="owne"><str></str></arr><arr name="tors"><str>d D.</str><str>G</str><str>Pai</str></arr><arr name="ers"><str></str></arr><str name="url"/></doc></result> 

</response> 

上面就是我得到,但有錯誤的XML。任何建議將不勝感激。

+0

你在哪裏放置了上面的代碼? – Nix 2011-06-15 23:28:37

+0

@ Nix,我在本地計算機上工作,search_agile_metadata等於(http:// solrdev01:8800/solr-qcpatents/select /?q =)。如果我沒有指定任何dataType,那麼我得到這個錯誤 「XML分析錯誤:找不到任何元素位置:moz-nullprincipal:」 – ferhan 2011-06-15 23:30:18

+0

什麼是響應? – 2011-06-16 00:11:00

回答

1

您正在請求XML,但告訴jQuery它是帶有Padding的JSON。它會拋出語法錯誤,因爲它不是有效的JavaScript代碼,因此無法解析爲JSONP

很顯然,您嘗試從不同的域中獲取數據,這就是爲什麼當您切換到XML時它不起作用。對於跨域請求,您需要查看CORS,XMLHttpRequest Level 2和IE的XDomainRequest。對於舊版瀏覽器的支持,恐怕你運氣不佳,除非你可以修改資源以輸出有效的帶有填充的JSON。

+0

如果我在服務器上工作,那麼這個問題可以解決??和任何捷徑方法來做這件事..因爲它會花費很多時間在閱讀所有這些。 – ferhan 2011-06-16 16:56:48

+0

@Raihan:如果你在與資源相同的服務器/域上工作,那麼你就不會遇到這個問題,只需將數據類型切換爲「xml」即可。如果你想從localhost工作,你需要看看CORS的東西。 – 2011-06-16 17:21:46