缺失;在声明之前我检查Firebug中的响应?

问题描述:

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

您正在请求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