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中遇到同样的错误;
失踪;在陈述之前
<?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 :(得分:1)
您正在请求XML,但告诉jQuery它是带有Padding的JSON。它会抛出语法错误,因为它不是有效的JavaScript代码,因此无法解析为 JSONP 。
很明显,您正在尝试从其他域获取数据,这就是为什么在切换到XML时它不起作用的原因。对于跨域请求,您需要查看CORS,XMLHttpRequest Level 2和IE的XDomainRequest。对于旧浏览器的支持,我担心你运气不好,除非你可以修改资源以输出带有填充的有效JSON。