Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果我没有';t在函数(){}中包装回调,否则失败_Javascript_Jquery_Ajax_Amazon S3 - Fatal编程技术网

Javascript 如果我没有';t在函数(){}中包装回调,否则失败

Javascript 如果我没有';t在函数(){}中包装回调,否则失败,javascript,jquery,ajax,amazon-s3,Javascript,Jquery,Ajax,Amazon S3,我正在对AmazonS3进行ajax调用(我相信CORS设置正确) 当我运行这个程序时,会调用error和complete $.ajax({ type: 'GET', url: 'https://s3.amazonaws.com/netanalytics-prototyping/test.csv', dataType: 'text/csv', crossDomain: true, success: function() {

我正在对AmazonS3进行ajax调用(我相信CORS设置正确)

当我运行这个程序时,会调用error和complete

  $.ajax({
      type: 'GET',
      url: 'https://s3.amazonaws.com/netanalytics-prototyping/test.csv',
      dataType: 'text/csv',
      crossDomain: true,
      success: function() {
                 console.log("success"),
      }
      error: function() {
              console.log("error")
      },
      complete: function() {
                  console.log("complete")
      }
  });
  $.ajax({
      type: 'GET',
      url: 'https://s3.amazonaws.com/netanalytics-prototyping/test.csv',
      dataType: 'text/csv',
      crossDomain: true,
      success: console.log("success"),
      error: function() {
              console.log("error")
      },
      complete: function() {
                  console.log("complete")
      }
  });
当我运行这个时,所有3个都会被调用

  $.ajax({
      type: 'GET',
      url: 'https://s3.amazonaws.com/netanalytics-prototyping/test.csv',
      dataType: 'text/csv',
      crossDomain: true,
      success: function() {
                 console.log("success"),
      }
      error: function() {
              console.log("error")
      },
      complete: function() {
                  console.log("complete")
      }
  });
  $.ajax({
      type: 'GET',
      url: 'https://s3.amazonaws.com/netanalytics-prototyping/test.csv',
      dataType: 'text/csv',
      crossDomain: true,
      success: console.log("success"),
      error: function() {
              console.log("error")
      },
      complete: function() {
                  console.log("complete")
      }
  });

有人能解释一下发生了什么,或者告诉我如何操作从S3获取的数据吗?

成功的
值应该是
函数()

从文件

成功

类型:函数(任何数据、字符串textStatus、jqXHR、jqXHR)

在第二个示例中,当JavaScript解释代码时,将执行
console.log(“success”)
。因此,这并不意味着您的ajax调用成功

因此将执行
console.log(“success”)
,并将返回值(如果有)分配给$.ajax
success
处理程序

无论ajax调用失败或成功,都将调用
$.ajax.complete()

您的代码有一些语法错误,请参阅下面更正的代码

 $.ajax({
      type: 'GET',
      url: 'https://s3.amazonaws.com/netanalytics-prototyping/test.csv',
      dataType: 'text/csv',
      crossDomain: true,
      success: function() {
                 console.log("success");
      },
      error: function() {
              console.log("error");
      },
      complete: function() {
                  console.log("complete");
      }
  });
服务器返回403(禁止)

直接点击URL也会发出拒绝访问的消息

https://s3.amazonaws.com/netanalytics-prototyping/test.csv

<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>4D1ECAE7D1971C85</RequestId>
<HostId>
NPT4dfJSGeGQ/kUgv0SGnFwH52lDU69L8+5a5kvPJewFTw/q+Fu+A+lYVpJ7TgV3noDZHDaCZcg=
</HostId>
</Error>