【问题标题】:Missing ; before statement when I check response in Firebug?失踪 ;当我在 Firebug 中检查响应之前声明?
【发布时间】:2011-06-15 23:22:21
【问题描述】:
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",我在萤火虫中遇到了同样的错误;

失踪;声明之前

<?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,但有错误。任何建议将不胜感激。

【问题讨论】:

  • 你把上面的代码放在哪里了?
  • @Nix,我在本地计算机上工作,search_agile_metadata 等于 (solrdev01:8800/solr-qcpatents/select/?q=)。如果我没有指定任何数据类型,那么我会收到此错误“XML Parsing Error: no element found Location: moz-nullprincipal:”
  • 从您的评论来看,该服务似乎正在返回一个 XML,也许您应该尝试dataType: 'xml'
  • @Dhruva Sagar,@Dr.Molle:我试过了...如果我使用 XML,那么我没有得到任何响应。然后我收到错误“XML Parsing Error: no element找到位置:moz-nullprincipal:" 但如果我使用 jsonp 和脚本作为数据类型,那么我会收到响应,但出现错误“缺少 ; before statement”
  • @Raihan Jamal,也许您的服务正在返回格式错误的 JSON 数据?

标签: xml json jquery


【解决方案1】:

您正在请求 XML,但告诉 jQuery 它是带有 Padding 的 JSON。它会引发语法错误,因为它不是有效的 JavaScript 代码,因此无法解析为 JSONP

很明显,您正在尝试从不同的域获取数据,这就是为什么当您切换到 XML 时它不起作用的原因。对于跨域请求,你需要查看CORSXMLHttpRequest Level 2和IE的XDomainRequest。对于旧版浏览器的支持,恐怕您会很不走运,除非您可以修改资源以输出带填充的有效 JSON。

【讨论】:

  • 如果我在服务器上工作,那么这个问题可以解决吗??还有任何捷径可以做这件事..因为阅读所有这些都需要很多时间。
  • @Raihan:如果您在与资源相同的服务器/域上工作,那么您不会遇到这个问题,只需将数据类型切换为'xml'。如果你想让它在本地主机上工作,你需要查看 CORS 的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-15
  • 1970-01-01
  • 1970-01-01
  • 2019-09-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多