kann ich keine neue Aktionsmethode über .Ajax posten. Ich füge eine neue Funktion in meine App ein, die es Benutzern ermöglicht, einen Vorgang in Schritten durchzuführen.Nach einer erfolgreichen Aktion XMLHttpRequest in IE 10
Schritt 1 wählen Dropdown-Wert
nächsten Treffer-Taste und Schritt 2 (Ajax-Request lädt und rendert eine Teilansicht, eine Baumansicht Rendering)
nächsten Treffer Taste
Schritt 3 (laden ein Datei über XMLHttpRequest)
nächsten Treffer Taste
Schritt 4 (eine andere ajax-Anforderung wird um eine Teilansicht zu rendern) Aus irgendeinem Grund wird diese Anfrage niemals die Controller-Aktionsmethode treffen. Was komisch ist, ist, wenn ich die Aktionsmethode in Schritt 2 poste, wird es erfolgreich posten, aber ich habe unterschiedliche Aktionen für diesen Schritt.
Ich erhalte die folgenden Warnungen in IE 10 Entwicklertools
SEC7127: Redirect wurde für CORS Anforderung blockiert.
XMLHttpRequest: Netzwerkfehler 0x800c0014, Eine Umleitung Problem aufgetreten. SCRIPT7002: XMLHttpRequest: Netzwerkfehler 0x800c0014, A Umleitungsproblem trat auf.
Die obigen Fehler scheinen mit der XMLhhtprequest vor diesem Schritt verbunden zu sein. Ich habe versucht, die XMLhttprequest auf NULL festzulegen oder versuchen, es auf seinem Erfolgsereignis zu disponieren. Ich verstehe nicht, in Schritt 4 kann ich immer noch auf Schritt 2, aber nicht auf einen anderen Eintrag posten?
Schritt 3
function handleFiles() {
var formdata = new FormData(); //FormData object
var xhr = new XMLHttpRequest();
xhr.open('POST', fileUploadURL);
xhr.setRequestHeader('Content-type', 'multipart/form-data');
//Appending file information in Http headers
xhr.setRequestHeader('X-File-Name', document.getElementById('myFile').files[0].name);
xhr.setRequestHeader('X-File-Type', document.getElementById('myFile').files[0].type);
xhr.setRequestHeader('X-File-Size', document.getElementById('myFile').files[0].size);
//Sending file in XMLHttpRequest
xhr.send(document.getElementById('myFile').files[0]);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
$("input[id=filestoredname]").val(xhr.responseText);
alert("file saved..");
}
}
return false;
}
var instrumentSelectionUrl = '@Url.Action("Step2", "ErrorCode")';//step2
var finalTreeViewUrl = '@Url.Action("renderFinalTree", "ErrorCode")';//step3
var fileUploadURL = '@Url.Action("UploadFiles", "ErrorCode")';//step3
$(function() {
$('form').stepy({
backLabel: '<<',
nextLabel: '>>',
finishButton: false,
next: function (index) {
alert(index);
var v = $("#InsIdLst").chosen().val();
if (v == null && index == 2) {
alert("Please select an Instrument");
return false;
}
if (v != null && index == 2) {
var overlay = $('<div></div>').prependTo('body').attr('id', 'overlay');
$.ajax({
type: 'POST',
url: instrumentSelectionUrl,
cache: false,
datatype: "html",
data: $("form").serialize(),
success: function (result) {
$("#errorCodes").html(result);
overlay.remove();
}
});
}
if (index == 4) {
alert("try..");
$.ajax({
type: 'POST',
url: finalTreeViewUrl,
cache: false,
datatype: "html",
data: $("form").serialize(),
success: function (result) {
$("#errorCodesSave").html(result);
}
});
}
}
});
});
Es scheint, dass die Anforderung von Schritt 3 durch eine Ursprungsübergangsdetektion blockiert wird; Wenn es nie abgeschlossen wird, könnte es sein, dass es den Browser in einem unsicheren Zustand verlässt und somit nicht in der Lage ist, die nachfolgende XHR-Anfrage zu versuchen. Wenn Sie in der Lage waren, das Ursprungsproblem zu bestätigen/zu lösen, wette ich, dass das andere Problem sich selbst lösen würde. –
Schritt 3 xmlhttp 2 Anfrage ist zwar erfolgreich für das Hochladen der Datei und ich bekomme eine Erfolgs-Antwort. In Schritt 4, der nach dem Datei-Upload ist, kann ich nicht auf eine neue Domain-Controller-Aktionsmethode "renderfinaltree/errorcode" posten. In Schritt 4 kann ich noch von Schritt 2 "Step2, errorCode" an die Controller-Aktion posten. Dies ist in meiner Entwicklungsmaschine..Es ist in der Tat ein CORS-Problem, wie ich diese "SEC7127: Redirect wurde für CORS Anfrage blockiert" –
Also in Schritt 4, wenn ich $ ("# errorCodesSave"). Load (finalTreeViewUrl, {fileName : $ ("# filestoredname"). val(), $ ("# InsIdLst"). selected(). val() ;: 1}); anstelle von $ Ajax, postet es die beabsichtigte Controller-Aktion. Das funktioniert gut genug für mich, ich werde nur sicherstellen, dass der Rest der Ajax-Methoden in dieser Ansicht wie erwartet funktioniert. –