Dailymotion API-CORS:服务器具有访问控制允许源代码:*但ajax请求未通过相同的源代码

Dailymotion API-CORS:服务器具有访问控制允许源代码:*但ajax请求未通过相同的源代码,cors,same-origin-policy,dailymotion-api,Cors,Same Origin Policy,Dailymotion Api,这可能是dailymotion API出现的问题: 请看这里: 在上面的问题中,解决方案是JSONP,但是对于POST请求,它在这里不起作用 从我在浏览器外的测试请求来看,服务器似乎确实接受CORS请求,但是我的Ajax请求始终失败,无论我如何处理这些选项 我的ajax设置: type:"POST", //I tried without this parameter xhrFields: { //I

这可能是dailymotion API出现的问题: 请看这里:

在上面的问题中,解决方案是JSONP,但是对于POST请求,它在这里不起作用

从我在浏览器外的测试请求来看,服务器似乎确实接受CORS请求,但是我的Ajax请求始终失败,无论我如何处理这些选项

我的ajax设置:

          type:"POST",
              //I tried without this parameter
          xhrFields: {
              //I tried with false
              withCredentials: true
           },
          processData: false,

              //I tried with the correct content type of 'multipart/form-data',
          contentType: false,


          //I tried with this enabled(and without)
          //crossDomain:true,
浏览器外的示例请求(注意CORS设置看起来不错)

Ajax错误:

    DAILYMOTION Object { readyState: 0, getResponseHeader: .ajax/v.getResponseHeader(), getAllResponseHeaders: .ajax/v.getAllResponseHeaders(), setRequestHeader: .ajax/v.setRequestHeader(), overrideMimeType: .ajax/v.overrideMimeType(), statusCode: .ajax/v.statusCode(), abort: .ajax/v.abort(), state: .Deferred/d.state(), always: .Deferred/d.always(), then: .Deferred/d.then(), 10 more… } error Exception { message: "", result: 2153644038, name: "", filename: "https://ajax.googleapis.com/ajax/li…", lineNumber: 4, columnNumber: 0, inner: null, data: null, stack: ".send@/ajax-googleapis-com/a…" } dmupload.js:98:12
    "DAILYMOTION[object Object]error[Exception... "<no message>"  nsresult: "0x805e0006 (<unknown>)"  location: "JS frame :: ajax-googleapis-com/ajax/libs/jquery/2.1.4/jquery.min.js :: .send :: line 4"  data: no]"
更新:我得到了要通过的选项请求,我放弃了jquery,只使用ajax,使用以下代码:

          var xhr = new XMLHttpRequest();

          xhr.open('POST', myUrl2, true);
          xhr.setRequestHeader('Authorization', 'Bearer ' + token);
          xhr.setRequestHeader('Content-Type', 'multipart/form-data');
          //xhr.setRequestHeader('X-Upload-Content-Length', blob.size);
         // xhr.setRequestHeader('X-Upload-Content-Type', blob.type);
          xhr.onload = function(e) {
            if (e.target.status < 400) {
              var location = e.target.getResponseHeader('Location');
            } else {
              alert("err10")
            }
          };
          xhr.onerror = function(e) {
            alert("err1", e)
              };
          xhr.send({'file': blob});
var xhr=new-XMLHttpRequest();
xhr.open('POST',myUrl2,true);
setRequestHeader('Authorization'、'Bearer'+令牌);
setRequestHeader('Content-Type','multipart/formdata');
//xhr.setRequestHeader('X-Upload-Content-Length',blob.size);
//setRequestHeader('X-Upload-Content-Type',blob.Type);
xhr.onload=函数(e){
如果(如目标状态<400){
var location=e.target.getResponseHeader('location');
}否则{
警报(“错误10”)
}
};
xhr.onerror=函数(e){
警报(“错误1”,e)
};
send({'file':blob});

更新2: 现在我可以发送POST请求,但无法读取响应。我想我仍然可以使用回调功能,这样就没关系了,但那不起作用。这是一个解释性的屏幕截图和我的新代码。

var fd4=new FormData();
console.log(blob)
fd4.追加(“文件”,blob);
var xhr=new XMLHttpRequest();
xhr.open('POST',myUrl2,true);
setRequestHeader('Content-Type','multipart/formdata');
//xhr.withCredentials=true;
setRequestHeader('Content-Length',blob.size);
//setRequestHeader('X-Upload-Content-Type',blob.Type);
xhr.onload=函数(e){
log(“HEADERS”,例如target.getAllResponseHeaders())
如果(如目标状态<400){
var location=e.target.getResponseHeader('location');
//sendFile(blob,blobl.size,blob.type,myUrl2);
}否则{
警报(“错误10”)
}
};
xhr.onerror=函数(e){
log(“HEADERS”,例如target.getAllResponseHeaders())
警报(“错误1”,e)
};
xhr.send(fd4);
    Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://upload-01.sv6.dailymotion.com/upload?uuid=6513ac948c1c71afdfca3be8d359d0a5&seal=12dc43863f90d931f63e6492cdb40a9e?access_token=dXgDWFQYX1gPVRxOUBpaEQlFER5ZQ0hHCg. (Reason: CORS request failed).
          var xhr = new XMLHttpRequest();

          xhr.open('POST', myUrl2, true);
          xhr.setRequestHeader('Authorization', 'Bearer ' + token);
          xhr.setRequestHeader('Content-Type', 'multipart/form-data');
          //xhr.setRequestHeader('X-Upload-Content-Length', blob.size);
         // xhr.setRequestHeader('X-Upload-Content-Type', blob.type);
          xhr.onload = function(e) {
            if (e.target.status < 400) {
              var location = e.target.getResponseHeader('Location');
            } else {
              alert("err10")
            }
          };
          xhr.onerror = function(e) {
            alert("err1", e)
              };
          xhr.send({'file': blob});
        var fd4 = new FormData();
        console.log(blob)
        fd4.append("file", blob);

          var xhr = new XMLHttpRequest();

          xhr.open('POST', myUrl2, true);
          xhr.setRequestHeader('Content-Type', 'multipart/form-data');
          //xhr.withCredentials = true;
          xhr.setRequestHeader('Content-Length', blob.size);
         // xhr.setRequestHeader('X-Upload-Content-Type', blob.type);
          xhr.onload = function(e) {
            console.log("HEADERS", e.target.getAllResponseHeaders())
            if (e.target.status < 400) {
              var location = e.target.getResponseHeader('Location');
              //sendFile_(blob, blobl.size, blob.type, myUrl2);
            } else {
              alert("err10")
            }
          };
          xhr.onerror = function(e) {
            console.log("HEADERS", e.target.getAllResponseHeaders())
            alert("err1", e)
          };
          xhr.send(fd4);