1

我有一个简单的脚本,它有一个 jQuery .ajax(),它需要一个 HTML 片段作为返回的数据。由于是跨域调用,我不得不设置dataType: 'jsonp'.

预期的返回数据如下所示:

<li><a href="https://sugarsync.custhelp.com/app/answers/detail/a_id/293/">Link 1</a></li>
<li><a href="https://sugarsync.custhelp.com/app/answers/detail/a_id/307">Link 2</a></li>
...

不幸的是,当我运行脚本时,出现以下错误(在 Firebug 控制台选项卡中)。我尝试了不同dataType的方法jsonp htmljsonp text html但无济于事。

unterminated regular expression literal
...

这是jsFiddle 演示。请帮忙?

4

2 回答 2

1

您是否设置了服务器来处理 jsonp 请求?如果没有,那么它将不起作用(据我了解)。

作为替代方案,有一个简洁的小 jQuery 插件,可让您发出跨域 GET 请求:https ://github.com/padolsey/jQuery-Plugins/tree/master/cross-domain-ajax/

然后,您可以$.ajax像往常一样使用:

    $.ajax({
      url: 'http://blog.sugarsync.com/blog/rn-android/',
      type: 'GET',
      success: function(data) {
        $('#list').html(data.responseText);
      }
    });

希望这可以帮助

于 2012-04-10T16:55:01.267 回答
0

您可以尝试将从 ajax Web 服务返回的 html 包装在 json 对象中。例如{"html":"<li>the rest of your html</li>"}

然后你必须通过使用解压成功函数中的 json$('#list').html(data.html)

我认为您的数据在使用 jsonp 时必须采用有效的 json 格式。

于 2012-04-10T16:32:12.070 回答