2012-04-10 5 views
1

Ich habe ein einfaches Skript, das eine jQuery .ajax() erwartet, die ein HTML-Snippet als die zurückgegebenen Daten erwartet. Da es sich um einen domänenübergreifenden Anruf handelt, musste ich dataType: 'jsonp' einstellen..ajax() JSONP Unterminiert Regulärer Ausdruck Literal

Die erwarteten zurückgegebenen Daten wie folgt aussehen:

<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> 
... 

Leider, als ich das Drehbuch lief, ich folgende Fehlermeldung bekam (in der Firebug-Konsole Registerkarte). Ich habe einen anderen dataType wie jsonp html und jsonp text html versucht, aber ohne Erfolg.

unterminated regular expression literal 
... 

Dies ist die jsFiddle demo. Hilfe bitte?

+1

'http: // blog.sugarsync.com/blog/rn-android /' dient HTML, nicht JavaScript. – ThiefMaster

Antwort

0

Sie könnten versuchen, den vom ajax-Webservice zurückgegebenen HTML-Code in ein json-Objekt einzufügen. z.B. {"html":"<li>the rest of your html</li>"}

Dann werden Sie die json in der Erfolgsfunktion auspacken müssen durch $('#list').html(data.html) mit

Ich denke, Ihre Daten in einem gültigen JSON-Format sein muss bei der Verwendung von JSONP.

1

Haben Sie den Server für die Verarbeitung von JSONP-Anfragen eingerichtet? Wenn nicht, dann wird es nicht funktionieren (von dem, was ich verstehe).

Als Alternative gibt es eine nette kleine jQuery-Plugin, das Sie Cross-Domain-GET-Anforderungen machen können: https://github.com/padolsey/jQuery-Plugins/tree/master/cross-domain-ajax/

Sie können dann mit nur $.ajax wie gewohnt:

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

Hope this hilft