Javascript 如何克服windows 2012 R2服务器上的post 405错误

Javascript 如何克服windows 2012 R2服务器上的post 405错误,javascript,php,html,post,http-status-code-405,Javascript,Php,Html,Post,Http Status Code 405,我有一个小的测试应用程序来记录相机,并将文件发送到我服务器上的一个目录。 主要文件如下: 录像带{ 最大宽度:100%; 边框:5px纯黄色; 边界半径:9px; } 身体{ 背景:黑色; } h1{ 颜色:黄色; } RecordRTC上传到PHP //捕获摄像头和/或麦克风 navigator.mediaDevices.getUserMedia({video:true,audio:true}){ //录制期间预览相机 document.getElementById('your-video

我有一个小的测试应用程序来记录相机,并将文件发送到我服务器上的一个目录。 主要文件如下:


录像带{
最大宽度:100%;
边框:5px纯黄色;
边界半径:9px;
}
身体{
背景:黑色;
}
h1{
颜色:黄色;
}
RecordRTC上传到PHP
//捕获摄像头和/或麦克风
navigator.mediaDevices.getUserMedia({video:true,audio:true}){
//录制期间预览相机
document.getElementById('your-video-id')。mute=true;
document.getElementById('your-video-id')。srcObject=camera;
//记录配置/提示/参数
var记录点={
键入:“视频”
};
//启动记录器
var记录器=记录RTC(摄像机、记录点);
//从这里开始录音
记录器。开始记录();
//5秒后自动停止录制
var毫秒=5*1000;
setTimeout(函数(){
//停止录音
recorder.stopRecording(函数(){
//得到记录的斑点
var blob=recorder.getBlob();
//生成随机文件名
var fileName=getFileName('webm');
//我们需要上传“文件”,而不是“Blob”
var fileObject=新文件([blob],文件名{
键入:“视频/webm”
});
uploadToPHPServer(文件对象、函数(响应、文件下载URL){
如果(响应!=“结束”){
document.getElementById('header')。innerHTML=response;//上载进度
返回;
}
document.getElementById('header')。innerHTML='';
警报(“已成功上载录制的blob”);
//预览上载的文件
document.getElementById('your-video-id')。src=fileDownloadURL;
//在新选项卡中打开上载的文件
打开(文件下载URL);
});
//释放照相机
document.getElementById('your-video-id')。srcObject=null;
camera.getTracks().forEach(函数(轨迹){
track.stop();
});
});
}毫秒);
});
函数uploadToPHPServer(blob,回调){
//创建表单数据
var formData=new formData();
append('video-filename',blob.name);
日志(“blob.name:”);
console.log(blob.name);
formData.append('video-blob',blob);
回调('将录制的文件上载到服务器');
makeXMLHttpRequest('https://xxx/yyy/,formData,函数(进度){
如果(进度!=“上传结束”){
回调(进度);
返回;
}
var initialURL='0https://xxx/yyy/“+blob.name;
回调('end',initialURL);
});
}
函数makeXMLHttpRequest(url、数据、回调){
var request=new XMLHttpRequest();
request.onreadystatechange=函数(){
if(request.readyState==4&&request.status==200){
if(request.responseText==='success'){
回调(“上传结束”);
返回;
}
警报(request.responseText);
返回;
}
};
request.upload.onloadstart=函数(){
回调('PHP上载已启动…');
};
request.upload.onprogress=函数(事件){
回调('PHP上传进度'+Math.round(event.loaded/event.total*100)+“%”);
};
request.upload.onload=函数(){
回调(“即将结束的进度”);
};
request.upload.onload=函数(){
回调('PHP上载已结束。正在获取文件URL');
};
request.upload.onerror=函数(错误){
回调(“PHP上载失败”);
};
request.upload.onabort=函数(错误){
回调('PHP上传中止');
};
request.open('POST',url);
请求发送(数据);
}
//此函数用于生成随机文件名
函数getFileName(文件扩展名){
var d=新日期();
var year=d.getUTCFullYear();
var month=d.getUTCMonth();
var date=d.getUTCDate();
返回'RecordRTC-'+年+月+日期+'-'+getRandomString()+'.+文件扩展名;
}
函数getRandomString(){
if(window.crypto&&window.crypto.getRandomValues&&navigator.userAgent.indexOf('Safari')=-1){
var a=window.crypto.getRandomValues(新UINT32数组(3)),