2017-02-13 1 views
0

эта проблема беспокоит меня сейчас, по крайней мере, днем, когда я играю около У меня есть код ASP NET и код javascript, отлично работающий на одном из моих сайтов. Я продублировал свой проект в веб-приложении (чтобы узнать его по различным причинам), и есть один бит, который отказывается работатьXMLHttpRequest в ASP NET не работает с момента обновления с веб-сайта на веб-приложение

Страница загружает изображение blob в себя с помощью XMLHttpRequest. Это код сервера (страница событие загрузки):

Dim files As HttpFileCollection = Request.Files 
If files.Count > 0 Then 
    For a = 0 To files.Count - 1 
    Dim fil As HttpPostedFile = files(a) 
    Dim s As String = fil.FileName 
    If s = String.Empty Then 
     GoTo skip 
    End If 
    Dim uq As String = UniqueIDGen.GetUniqueKey 
    Dim SaveLocation As String = Convert.ToString(Server.MapPath("~/Crop/Temp") + "\") & uq & "_" & s & ".jpg" 
    'save the posted image blob as a file 
    fil.SaveAs(SaveLocation) 
    'save the paths for the application to use later 
    Session("UploadedImageURL") = Path.Combine("~/Crop/temp/" & uq & "_" & s & ".jpg") 
    Next 
End If 

А на странице, это бит, который загружает изображение:

function uploadFile() { 
    var fd = new FormData(); 
    var $selector = $("#image"); 
    var w = document.getElementById('hidPreferredWidth').value; 
    var canvas = $($selector).cropper('getCroppedCanvas', { width: w, height: 100 }); 
    var image = canvas.toDataURL('image/jpeg'); 
    var blob = dataURItoBlob(image); 
    fd.append("toDataData", blob); 

    var xhr = new XMLHttpRequest(); 
    xhr.upload.addEventListener("progress", uploadProgress, false); 
    xhr.addEventListener("load", uploadComplete, false); 
    xhr.addEventListener("error", uploadFailed, false); 
    xhr.addEventListener("abort", uploadCanceled, false); 
    xhr.open("POST", "GetImage.aspx", false); 
    xhr.setRequestHeader("Accept", "*/*") 
    xhr.setRequestHeader("Cache-Control", "no-cache") 
    xhr.setRequestHeader("MyHeader","TestValue") 
    xhr.send(fd); 
} 

Итак, все прекрасно работает на веб-сайте, но не в веб-приложении. Оба запускаются в Visual Studio 2015

У меня уже возникла проблема с URL-адресами при перемещении веб-сайта, мне интересно, может ли это быть проблемой?

Это HTTP-заголовки на (работа) на сайте:

Cache-Control=no-cache 
Connection=Keep-Alive 
Content-Length=14237 
Content-Type=multipart/form-data; boundary=---------------------------7e1153e5f061e 
Accept=*/* 
Accept-Encoding=gzip, deflate 
Accept-Language=en-GB,en;q=0.5 
Cookie=_ga=GA1.1.1076994128.1486478471; cookie_assistant_enable_cookies=true; .AspNet.ApplicationCookie=_Uo6V6Ah4x-e4J-FrKp1JNwmESjtmpW-sf2eY22_TugxCR0OyCCoAsh5Iv5aB1EUtjWXvD7O4E9tbbFPQ7mtQK8hXMFc6wzdSUWccxMKig5Wm9dgnSDoB3ERjEk6TlD2hakr56qo3o-2Zv5S2VCRWLKRlxcJnYl4c96iTDeet-MpWMgyO6GRbSUzC7Thgvd4uoNPjBOOYArPIOElTI0tqIu4iL2_Y4eI6yR7hK9DQD0VRtRqaGndB0C4jufhT9_KkNQVltLPzb-zZzpdIacvBjSvthqC0i-p2zXve1ia5vyGnS3rOJaWe6edqAwjJ3fgzdm44AAYHbwQcShZJY7NLKbYbdQLkqg-OtMD7HdgWTgF_AjiapwoAITKSNEy7L2oK5EPZGkI0nnvyWxjvNKbSXMNkDqkyGsQ5uoVZ62DYxtBmSkx8AF3ncWQuaNdI5SG_I5nlVhZMdRfVL1SH10_7_HK8pEnFVK-TfbqI1FfpIX6QcNOEfUA2aRUiMDxnSo1; _gat=1; ASP.NET_SessionId=q2hdzqacnygw5crvhyypxcxb 
Host=localhost:51872 
Referer=http://localhost:51872/Crop/GetImage.aspx 
User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393 
MyHeader=JustTesting 

И это заголовки в (не работает) ASP NET Применение:

Cache-Control=no-cache 
Connection=Keep-Alive 
Content-Type=multipart/form-data; boundary=---------------------------7e114b5330aea 
Accept=*/* 
Accept-Encoding=gzip, deflate 
Accept-Language=en-GB,en;q=0.5 
Cookie=_ga=GA1.1.1076994128.1486478471; cookie_assistant_enable_cookies=true; .AspNet.ApplicationCookie=_Uo6V6Ah4x-e4J-FrKp1JNwmESjtmpW-sf2eY22_TugxCR0OyCCoAsh5Iv5aB1EUtjWXvD7O4E9tbbFPQ7mtQK8hXMFc6wzdSUWccxMKig5Wm9dgnSDoB3ERjEk6TlD2hakr56qo3o-2Zv5S2VCRWLKRlxcJnYl4c96iTDeet-MpWMgyO6GRbSUzC7Thgvd4uoNPjBOOYArPIOElTI0tqIu4iL2_Y4eI6yR7hK9DQD0VRtRqaGndB0C4jufhT9_KkNQVltLPzb-zZzpdIacvBjSvthqC0i-p2zXve1ia5vyGnS3rOJaWe6edqAwjJ3fgzdm44AAYHbwQcShZJY7NLKbYbdQLkqg-OtMD7HdgWTgF_AjiapwoAITKSNEy7L2oK5EPZGkI0nnvyWxjvNKbSXMNkDqkyGsQ5uoVZ62DYxtBmSkx8AF3ncWQuaNdI5SG_I5nlVhZMdRfVL1SH10_7_HK8pEnFVK-TfbqI1FfpIX6QcNOEfUA2aRUiMDxnSo1; _gat=1; ASP.NET_SessionId=2lzpivbvow0a0vzpsyags2sr 
Host=localhost:57291 
Referer=http://localhost:57291/crop/GetImage 
User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393 
MyHeader=TestValue 

Там находится другой в значение референта, может ли это быть проблемой?

В любом случае, когда я запускаю это в веб-приложении. нет файла, переданного на сервер? Тем не менее на веб-сайте вы можете видеть в заголовке, что есть длина контента, это файл, который работает

Любая помощь массово ценится!

+0

С тех пор я заметил на сервере, что тип запроса - GET, а не POST, поэтому это должно быть проблемой. Почему версия веб-приложения не выдает POST? –

+0

Confused. Как сценарий клиента на той же странице вызывает ваш сервер Page 'Загрузка'? Ваше исправление ниже, кажется, отвечает на этот вопрос, который теперь вызывает (POSTing to) «другую» страницу (?). – EdSF

ответ

0

Хорошо, исправлено. Мой звонок был в GetImage.aspx из javascript. По-видимому, это плохо и привело к вызову GET в новых версиях .NET (всегда работал до этого)

Решение: создайте папку/GetImageHelper и добавьте документ по умолчанию (Default.aspx) - поместите код на стороне сервера в документ по умолчанию

с веб-страницы JavaScript, вызов HTTP, как это:

xhr.open("POST", "GetImageHelper/", false);

жаль, что я успел сообразить, совсем, почему это так, но у меня есть сроки, которые гораздо ближе в настоящее время: -)

Смежные вопросы