Entwickler-Ecke

ASP.NET und Web - Upload mit JQuery ?


georgeboy - Di 10.12.19 14:34
Titel: Upload mit JQuery ?
Hallo zusammen, nochmals, wie kann man mit JQuery Text-Dateien bzw Text, zum Server hochladen ? Versucht habe ich es mit $.ajax({ ...data:  ...}). Dabei ist mir unklar, was man dem Feld "data" übergeben muss. Versucht habe ich es so:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
$.ajax({
        type: "POST",
        url: "MeineDatei.txt",
        data:  "1234" ,
        dataType: "text",
        success: function(resultData){
          alert("Save Complete");
        },
        error: function( jqXhr, textStatus, errorThrown ){
          alert( errorThrown )
        }
});


Moderiert von user profile iconTh69: Code-Tags hinzugefügt


georgeboy - Di 10.12.19 15:33

Es geht wohl mit dem JSON - Format, Sorry ...


georgeboy - Mi 11.12.19 16:02

Hat damit nichts zu tun, immer kommt error: Invalid Argument. Im Netz wird der Fehler auch beschrieben ! Hat wahrscheinlich mit dem Internet-Explorer zu tun, Habt ihr einen guten Tip ?


Ralf Jansen - Mi 11.12.19 18:50

Im Zusammenhang mit dem IE? Da gibt es nur einen sinnvollen Rat. Nicht benutzen!

Nimm einen der üblichen verdächtigen anderen Browser. Der IE ist in jeder Inkarnation eine Krankheit und Bedarf immer viel zusätzlichen Aufwand ohne tatsächlichen Gewinn.
Ja andere Browser brauchen auch schon mal Spezialbehandlung aber die unterscheiden sich üblicherweise nur marginal und das lässt sich oft mit ein wenig zusätzlichem CSS fixen. Dem IE muss man aber regelmäßig irgendwelche Polyfills hinterherwerfen um aktuelles oder auch nur funktionierendes Verhalten bei zu bringen.


georgeboy - Mi 11.12.19 19:48

Ein Danke dazu !


georgeboy - Do 12.12.19 08:13

Wie stellt man mit JavaScript, den verwendeten Browser fest ? Mit navigator.addName ist es nicht getan, da kommt immer für alle Browser der selbe Text. Wie weist man den Nutzer, Client darauf hin, dass der verwendete Browser nicht geeignet ist ?


doublecross - Do 12.12.19 08:27

Als ergänzung zu den Kommentar von user profile iconRalf Jansen möchte ich hinzufügen, dass du beim Intent Explorer auch nicht von neueren JaveScript erweiterungen profitieren kannst, was im wesendlichen hieran liegt:

Zitat:
Im März 2015 teilte Microsoft mit, dass die Weiterentwicklung des IE zugunsten des neuen Browsers Edge, der nur Windows 10 unterstützt, eingestellt werde.

Quelle: Wikipedia [https://de.wikipedia.org/wiki/Internet_Explorer]


Nach vier Jahren ist es glaube ich legitim auf den Support eines Angekündigten Produktes zu verzichten.


Th69 - Do 12.12.19 10:03

Schau mal in How to detect Safari, Chrome, IE, Firefox and Opera browser? [https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser] Empfohlen wird dort u.a. Bowser [https://github.com/lancedikson/bowser].


Christian S. - Do 12.12.19 10:24

Bevor Du jetzt Zeit investierst, den IE auszuschließen, obwohl er von jQuery unterstützt wird [https://jquery.com/browser-support/], die Frage: Geht es denn in den anderen Browsern, also z.B. Chrome oder Firefox?

Ist das der tatsächliche Request-Code? Denn dass der url-Parameter eine txt-Datei ist, kommt mir irgendwie komisch vor, da muss ja eigentlich der Endpunkt rein, zu dem Du POSTen willst.


georgeboy - Do 12.12.19 14:00

So habe ich es auch versucht:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
$.ajax({
        type: "POST",
        url: "MeineDatei.json",
        data:  { "Name1" : "Wert1" } ,
        dataType: "json",
        success: function(resultData){
          alert("Save Complete");
        },
        error: function( jqXhr, textStatus, errorThrown ){
          alert( errorThrown )
        }
});


Sowohl mit IE als auch mit Chrome schlägt es fehl. Festgestellt mit dem obigen Erkennungscode.

Moderiert von user profile iconTh69: Code-Tags hinzugefügt


Th69 - Do 12.12.19 15:39

Was soll man dazu noch sagen?

Hast du den letzten Satz von Christian nicht verstanden?
s.a. die Beispiele in jQuery.post() [https://api.jquery.com/jQuery.post/]

Du mußt dort die URL des Serverscripts angeben, welches den Request entgegennehmen soll.

Wenn du aber Dateien hochladen willst (anstatt einen Text), dann benötigst du eine andere Methode, s.a. die Antworten in PHP file-upload using jquery post [https://stackoverflow.com/questions/11046684/php-file-upload-using-jquery-post].


georgeboy - Fr 13.12.19 07:36

Verstehe überhaupt nichts, bin eben noch Anfänger auf dem Gebiet. Ich arbeite mit ASP.NET C# und nicht mit PHP. Ist denn die URL nicht der Dateiname zu dem die Daten geschickt werden ? Also wie geht der Upload von Daten zum Server ? Mit euren Links bin ich nicht klargekommen, die Seiten habe ich schon gelesen.


georgeboy - Fr 13.12.19 09:47

Ist das eine URL ? Traue mich kaum zu fragen ...

Quelltext
1:
$.post('http//localhost:49541/WebSite14/MeineDatei.json', { "name" : "John", "time" : "2pm" }, function(data, status) {alert(status); });                    

alert wird nicht aufgerufen.

Moderiert von user profile iconTh69: Code-Tags hinzugefügt


Christian S. - Fr 13.12.19 09:52

Wie sieht denn der serverseitige Controller (C#) aus, der den Upload annehmen soll?


georgeboy - Fr 13.12.19 10:11

Oje mit MVC, habe ich mich noch gar nicht befasst. Ich glaube wir lassen das, damit muss ich mich erst noch befassen, die Sache ist nicht so dringend. Wollte mich nur weiterbilden, in der Lage sein, eine Webanwendung zu schreiben, dazu gehört für mich up/down-Load zum Server, Kenntnisse habe ich in HTML5, CSS, Javascript, JQuery,C#, ASP.NET alte Version, ohne die modernen Technologien wie MVC ASP.NET Core, SignalR, Razor-Pages usw. Wenn wir das beenden, Danke für Eure Mühe ....