2016-08-05 15 views
0

Ich versuche, eine Action von einem jQuery-Modal zu posten und diese Aktion JSON zurückgeben. Aber ich erhalte immer diese Fehlermeldung:Ressource als Dokument interpretiert, aber mit MIME-Typ Anwendung/JSON

Resource intepreted as Document but transferred with MIME type application/json 

Und dann mein Browser leitet auf der Seite mit dem URL-Pfad meiner Aktion und zeigt nur die JSON als String zurück.

Beachten Sie, dass ich in der Lage bin, zu meinem Controller gut zu posten, es ist, wenn die Rückkehr Json (...) aufgerufen wird, dass es aus irgendeinem Grund auf die URL meiner Post-Aktion umgeleitet wird, als zu meinem Ajax-Anruf zurückzukehren .

Hier ist meine Aktion:

[HttpPost] 
public JsonResult Create(MyModel model) 
{ 
    return Json(...); 
} 

Mein JS:

$('form') 
      .submit(function() { 
       if ($(this).valid()) { 
        $.ajax({ 
         url: this.action, 
         contentType: "application/json; charset=utf-8", 
         type: "post", 
         data: $(this).serialize(), 
         success: function(result) { 
          console.log(result); 
          $('#formContent').html(result); 
        }); 
       } 
       return false; 
      }); 

Antwort

0

Wenn Sie $(this).serialize() als nutzen Ihre Daten - Ihre Daten werden eine Zeichenfolge sein (wie dies das Ergebnis der serialize Funktion ist .

Wenn Sie wollen, dass Ihre Daten in Json-Notation sind, können Sie wollen $(this).serializeArray() e, die die serializeArray Funktion können Sie die Daten als so etwas geben wird:

[ 
    { 
     name: "a", 
     value: "1" 
    }, 
    { 
     name: "b", 
     value: "2" 
    }, 
    { 
     name: "c", 
     value: "3" 
    }, 
    { 
     name: "d", 
     value: "4" 
    }, 
    { 
     name: "e", 
     value: "5" 
    } 
] 

Also, falls Sie die Daten zu { 'a' : '1', 'b' : '2', 'c' : '3'} ändern Sie müssen vielleicht ein bisschen auf den Daten arbeiten, bevor sie an den Server sendet.