javascript jquery AJAX PUT添加本地url到传递的url

o75abkj4  于 2023-03-06  发布在  Java
关注(0)|答案(3)|浏览(152)

我正在尝试通过ajax上传一个文件到s3。
下面是我的代码:

$.ajax({
      type: 'PUT',
      url: url,
      contentType: application/octet-stream,
      processData: false,
      crossDomain: true,
      data: file,
    })
    .success(function() {
      alert('File uploaded');
    })
    .error(function() {
      alert('File NOT uploaded');
      console.log( arguments);
    });

它不工作,因为它是添加http://localhost:1337/api/v1在前面的实际网址,所以它失败了,并给我404: Not found error

如果我用这个,同样的事情工作:

const xhr = new XMLHttpRequest();
  xhr.open('PUT', url);
  xhr.onreadystatechange = () => {
    if(xhr.readyState === 4){
      if(xhr.status === 200){
        console.log('200 status')
      }
      else{
        alert('Could not upload file.');
      }
    }
  };
  xhr.send(file);
wlzqhblo

wlzqhblo1#

你试过这个吗?

$.ajax({
  type: 'POST',
  url: url,
  contentType: application/octet-stream,
  processData: false,
  crossDomain: true,
  data: file,
  success: function(data) {
  alert('File uploaded');
  }
  error: function(data) {
  alert('File NOT uploaded');
  console.log( arguments);
  }
});
ecbunoof

ecbunoof2#

您必须对url参数进行url编码,该参数为“url”。使用encodeURI()或encodeURIComponent(),您的示例应为:
变量url =“http://localhost:1337/api/v1?myurl=“+编码URI组件(“https//ntnx.portal......”);
在你的服务器端脚本得到后,通过参数'myurl'得到你的url

tag5nh1u

tag5nh1u3#

老问题,但如果有人发现它,这里是我发现的问题:我最初键入的网址如下:

url: "http:/{insert_url}"

只要再加一个正斜杠,就像这样,我就完全解决了这个问题。

url: "http://{insert_url}"

相关问题