Javascript 当服务器需要身份验证时,将文件上载到“英特尔XDK”中的服务器

Javascript 当服务器需要身份验证时,将文件上载到“英特尔XDK”中的服务器,javascript,asp.net-mvc-4,forms-authentication,appframework,intel-xdk,Javascript,Asp.net Mvc 4,Forms Authentication,Appframework,Intel Xdk,我正在开发一个应用程序使用。我遇到的问题涉及Intel XDK JavaScript桥API,尤其是 我已经用MVC编写了一个简单的服务器后端。我有用于上传从移动设备拍摄的照片的工作代码,但当我使服务器上的上传url需要身份验证时,该代码失败 我不确定MVC身份验证到底是如何工作的,我认为它混合使用了cookie和一些http头?为了澄清我正在使用的。但是,服务器实际上并不使用表单或返回视图。我修改了AuthenticationRequired事件,只返回404而不是视图 真正的问题是,熟悉In

我正在开发一个应用程序使用。我遇到的问题涉及Intel XDK JavaScript桥API,尤其是

我已经用MVC编写了一个简单的服务器后端。我有用于上传从移动设备拍摄的照片的工作代码,但当我使服务器上的上传url需要身份验证时,该代码失败

我不确定MVC身份验证到底是如何工作的,我认为它混合使用了cookie和一些http头?为了澄清我正在使用的。但是,服务器实际上并不使用表单或返回视图。我修改了AuthenticationRequired事件,只返回404而不是视图

真正的问题是,熟悉Intel XDK的人是否知道uploadToServer方法是否也可以通过身份验证Cookie/headers/但它可以工作?到目前为止,我对服务器的所有请求都使用了。不是jQuery,只是看起来像。这似乎传递了身份验证的内容,因为我在服务器上有返回Json的方法,这些方法需要身份验证,并且一切正常

我的服务器代码:

我的JavaScript


我想你应该试试,我以前的项目使用了CORS技术


Response.AppendHeaderAccess-Control-Allow-Origin,*

您正在使用[MyAuthorizeAttribute]。每个请求都会发送一个名为ASPXAUTH的cookie,该cookie将告诉服务器客户端请求的标识。如果请求没有此cookie,则您的属性将阻止该请求。我不熟悉此Intel框架,但您应该了解如何发送cookie或更改授权属性以从请求中读取一些令牌并授权此类请求。
[HandleError]
[MyAuthorizeAttribute]
public class PhotosController : Controller
{
    public ActionResult UploadPhoto()
    {
        Log.Write("UploadPhoto");
        if (Request != null && Request.Files != null && Request.Files.Count > 0)
        {
            foreach (string fileName in Request.Files)
            {
                if (Request.Files[fileName] == null || Request.Files[fileName].ContentType != "image/jpeg") 
                    continue;

                Request.Files[fileName].SaveAs(Server.MapPath("~/Content/Images/photo.jpg"));
            }
            return Json("File(s) Uploaded", JsonRequestBehavior.AllowGet);
        }
        return Json("No File(s) to Upload", JsonRequestBehavior.AllowGet);
    }
}
document.addEventListener("intel.xdk.file.upload.busy", function(evt) { $('#afui').popup("Sorry, a file is already being uploaded"); });
document.addEventListener("intel.xdk.file.upload",UploadComplete);
document.addEventListener("intel.xdk.file.upload.cancel", function(evt) { $('#afui').popup("File upload was cancelled "+evt.localURL); });

function MyUploadMethod() {    
    intel.xdk.file.uploadToServer(pictureURL,"http://mywebsite.co.uk/Photos/UploadPhoto", "", "image/jpeg", "UpdateUploadProgress");
}

function UpdateUploadProgress(bytesSent,totalBytes)
{
   if(totalBytes>0) {
        currentProgress=(bytesSent/totalBytes)*100;
        document.getElementById("progress").innerHTML=currentProgress+"%";
        console.log(currentProgress);
   }           
}

function UploadComplete(evt)
{
    if(evt.success===true)
    {
        $('#afui').popup("Success");
    }
    else {
        $('#afui').popup("Error uploading file "+evt.message);
    }
    document.getElementById("progress").innerHTML="";
}