2009-03-17 11 views
4

Ich möchte eine einfache Aktion Link in ASP.Net MVC RC2 erstellen mit jQuery 1.3.1 - etwa so:

<a href="#" onclick="AjaxTest1()">Tester</a>

mit der AjaxTest1 Funktion:


function AjaxTest1() { 
      $.ajax({ 
        url: "Home/Ajax1", 
        error: function(request, status, error) { 
         alert("error: " + status + ", " + "\n" + 
           error + ", " + request.responseText + 
           request.getAllResponseHeaders()); 
        }, 
        success: function(data, status) { 
         alert("Finally, it worked!"); 
        }, 
        type: "GET", 
        dataType: "text", 
       }); 
       return false; 
     } 

und Controller-Aktion:


public ActionResult Ajax1() 
     { 
      return this.Content("Test Content"); 
     } 

Alles, was ich versuche, ist eine einfache Zeichenfolge zurückgeben - aber der "Fehler" Callback wird immer mit einem Fehler von parseerror aufgerufen. Der XmlHttpRequest enthält die Inhaltszeichenfolge "Test Content" - also wird die Controlleraktion aufgerufen und die richtigen Daten werden zurückgegeben. Ich habe versucht, den dataType (auf "text", "html", "json") zu setzen, um den JsonResult-Typ im Controller zu verwenden, um den zurückgegebenen Inhaltstyp auf "text/plain" zu setzen, um $ .get zu verwenden , $ .getJson, etc ... nichts funktioniert. Ich habe das Gefühl, dass ich etwas sehr, sehr einfach vermissen muss - vor allem da Google keine Hilfe ist. Ideen?

Antwort

5

kann ich nicht glauben, dass ich das herausgefunden - es in der ein Tippfehler ist jquery-1.3.1*vsdoc.js (seine in jQuery.httpData wenn jemand da draußen interessiert ist - sie den Eingangsparameter als filter definieren, dann versuchen Sie es zu verweisen als s, die eine Ausnahme auslöst). Seltsamerweise, wenn Sie die nicht * vsdoc Version verwenden, ist der Tippfehler nicht da.

Sieht so aus, als hätten sie jQuery-1.3.2 mit vsdocs veröffentlicht - was nicht den Tippfehler hat. Also würde ich sagen, die Antwort ist, einfach das Update herunterzuladen. (jQuery Download Page)

Es ging ein Tag meines Lebens ... hoffe, das hilft jemandem.

+0

Ja, diese Arten von Bugs saugen Arsch. Wenn Sie Ihren Post mit dem Code aktualisieren, der funktioniert, werden Personen, die dies in der Zukunft finden, den Fehler und das Update im selben Kontext sehen. – Ariel

+0

Aktualisierung hat mir nicht geholfen. Ich bekomme immer noch den Fehler. Hast du noch etwas anderes gemacht? –

1

hast du diesen Artikel auf deinen Reisen in den großen Google void?

http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax/

er auch viele andere Artikel zu asp.net und jquery Interaktion hat.

Haben Sie POST anstelle von GET versucht? wie hier angegeben: http://weblogs.asp.net/scottgu/archive/2007/04/04/json-hijacking-and-how-asp-net-ajax-1-0-mitigates-these-attacks.aspx

+0

Ja, habe ich - ich lese ein paar seiner Artikel, aber er scheint sich mehr darauf konzentriert, wie man ein JSON-Objekt posten kann (obwohl ich in einem Anfall von Verzweiflung meine Anfrage nach seinem modelliert habe - ohne Glück) . Ich möchte nur einen einfachen Get AJAX-Anruf, der über den Link ausgelöst wird, und dann den zurückgegebenen Text in einem Alarm anzeigen. –

+0

Ich begann mit einem POST, aber dann Rollback zurück zu einem GET, um zu versuchen, Dinge zu vereinfachen. Gleiches Verhalten in jeder Hinsicht. –